C++ Mingw32无法静态链接到libgcc_s_dw2-1、libstdc++-6,libwinpthread-1(Qt 5.7.1)
在使用mingw32编译时,我遇到了一个静态链接libgcc_s_dw2-1、libstdc++-6、libwinpthread-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
-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。”