Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Mingw32无法静态链接到libgcc_s_dw2-1、libstdc++-6,libwinpthread-1(Qt 5.7.1)_C++_Cmake_Qt5_Mingw - Fatal编程技术网

C++ Mingw32无法静态链接到libgcc_s_dw2-1、libstdc++-6,libwinpthread-1(Qt 5.7.1)

C++ Mingw32无法静态链接到libgcc_s_dw2-1、libstdc++-6,libwinpthread-1(Qt 5.7.1),c++,cmake,qt5,mingw,C++,Cmake,Qt5,Mingw,在使用mingw32编译时,我遇到了一个静态链接libgcc_s_dw2-1、libstdc++-6、libwinpthread-1库的问题。 使用-static libgcc-static libstdc++-static-lwinpthread标志设置项目有助于构建独立应用程序。但是,当我将Qt5.7.1用于mingw32编译器时,它没有帮助。应用程序不会开始抱怨这些LIB丢失 这是我的CMakeLists.txt cmake_minimum_required(VERSION 3.12 FA

在使用mingw32编译时,我遇到了一个静态链接libgcc_s_dw2-1、libstdc++-6、libwinpthread-1库的问题。 使用
-static libgcc-static libstdc++-static-lwinpthread
标志设置项目有助于构建独立应用程序。但是,当我将Qt5.7.1用于mingw32编译器时,它没有帮助。应用程序不会开始抱怨这些LIB丢失

这是我的CMakeLists.txt

cmake_minimum_required(VERSION 3.12 FATAL_ERROR)

project(dummyapp LANGUAGES CXX)

find_package(Qt5 REQUIRED COMPONENTS Core)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++ -static -lwinpthread")

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)

add_executable(app
        app.cpp)

target_link_libraries(app
        PRIVATE
            Qt5::Core
        )

add_custom_command(TARGET app PRE_LINK
        COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::Core> $<TARGET_FILE_DIR:app>
        )
cmake_最低要求(3.12版致命错误)
项目(dummyapp语言CXX)
查找_包(Qt5所需组件核心)
设置(CMAKE_CXX_标志“${CMAKE_CXX_标志}-static libgcc-static libstdc++-static-lwinpthread”)
套装(CMAKE_CXX_标准11)
设置(CMAKE_CXX_STANDARD_REQUIRED TRUE)
添加可执行文件(应用程序)
app.cpp)
目标链接库(应用程序
私有的
Qt5::核心
)
添加自定义命令(目标应用程序预链接
命令${CMAKE_COMMAND}-E copy_如果不同$$
)
app.cpp

#include <iostream>
#include <QVariant>

int main(int argc, const char **argv)
{
    std::cout << "Hello dummy!" << std::endl;

    QVariant var{};

    std::cin.get();

    return 0;
}
#包括
#包括
int main(int argc,常量字符**argv)
{

如果您的构建及其依赖关系不是静态的,那么这些DLL需要与您的应用程序一起分发。
上的文章解释了libstdc++-6 DLL可以在不授权您的while应用程序的情况下在GPL下进行编辑。

如果您的构建及其依赖关系不是静态的,那么这些DLL需要与您的应用程序一起分发。 位于的文章解释了在GPL下不授权while应用程序的情况下可以编辑libstdc++-6 DLL。

说明“应用程序不会开始抱怨这些LIB丢失!”非常模糊。请显示您收到的确切错误消息。@Tsyvarev“该程序无法启动,因为您的计算机中缺少libgcc__dw2-1.dll。“应用程序不会开始抱怨这些lib丢失!”的描述非常模糊。请显示您收到的确切错误消息。@Tsyvarev“该程序无法启动,因为您的计算机中缺少libgcc__dw2-1.dll。”