c++ - 如何强制库在qt creator中静态链接

标签 c++ qt-creator static-libraries qmake static-linking

当一个人想要使用 g++ 静态链接所有可用的库时, 此人将 -static 标志传递给编译器。

但是如何从 Qt Creator 做到这一点?

首先,我尝试了这个建议: How to make Qt and Qtcreator link the libraries statically instead of dynamic?

帖子建议使用

CONFIG += static

但这根本行不通。

其次,我尝试了另一种方法并将以下行添加到我的 .pro 文件中:

QMAKE_CXXFLAGS += -static 

这也没有解决问题。 我分析了编译器输出并发现:

-static 标志仅在将源代码编译为目标文件时添加。 但是在构建可执行文件时,此标志不存在。

以下是我从编译器输出选项卡中复制的确切编译器命令:

g++ -c -pipe -fno-keep-inline-dllexport -static -g -std=gnu++11 -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -I..\..\..\ASSETS\PROG_CPP\MY_CPP\2016\test -I. -I..\..\..\icu\dist\include -I..\..\5.7\mingw53_32\mkspecs\win32-g++  -o debug\main.o ..\..\..\ASSETS\PROG_CPP\MY_CPP\2016\test\main.cpp
g++ -Wl,-subsystem,console -mthreads -o debug\test.exe debug/main.o  -LC:\icu\dist\lib -lsicuio -lsicuin -lsiculx -lsicule -lsicuuc C:\icu\dist\lib\sicudt.a -lpthread -lm

如何强制Qmake给所有命令加上-static?

最佳答案

正如我后来发现的那样,解决方案非常明显。 Qmake 中有一个特殊变量负责链接器标志:QMAKE_LFLAGS。 所以我所要做的就是将以下内容添加到 .pro 文件中:

QMAKE_LFLAGS += -static

关于c++ - 如何强制库在qt creator中静态链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41188707/

相关文章:

qt - 如何在 Qt Fakevim 中设置用户命令?

html - 鼠标事件在 QT Webkit 上的 Html5ApplicationViewer 中不起作用

Android NDK,来自预建静态库的 header

makefile - 与 googletest 链接时 undefined reference

xcode4 - Xcode 4 无法从静态库依赖项中找到公共(public)头文件

c++ - 专用队列上的 GCD block 停止执行大型 SQLite3 数据库

c++ - 如何在没有函数调用的情况下返回值?

C++,从文件中读取字母

在 Pascal 中实现的 .lib 的 C++ 包装器

android - QT-creator 2.8 无法部署到 android,ant clean 调试失败