qt – 如何在将静态库与qmake链接时提供链接器选项?

我想在使用qmake构建静态库时为链接器提供选项.假设我在使用MSVC构建时想要获得详细的链接器输出.项目文件如下所示:

# mylib.pro
TEMPLATE = lib
TARGET = mylib
CONFIG += staticlib
QT += core
win32-msvc*: QMAKE_LFLAGS += /VERBOSE
unix: QMAKE_LFLAGS += -v

这是整个项目文件.它应该导致一个空的静态库,其中没有对象.

既不设置QMAKE_LFLAGS也不设置QMAKE_LFLAGS_STATIC_LIB也不设置LIBS对链接器有任何影响.这些变量中没有设置甚至使它成为Makefile.如果QMAKE_LFLAGS有效,我希望看到/ VERBOSE或-v在命令行上传递给链接器,适用于给定的平台.

使用什么makefile生成器并不重要,这种行为似乎是一致的.这两个感兴趣的平台是.

qmake -spec win32-msvc2008
qmake -spec macx-llvm

由于qmake的跨平台特性,您可以在碰巧安装Qt的任何平台上进行测试.这从qt 4.8.4和5.1.1再现qmake. mkspec中给出的msvc版本无关紧要.

最佳答案
在staticlib项目中,LFLAGS不会传递给链接器.实际上,没有记录的方法来传递这样的标志.

该解决方案依赖于发电机.

对于msvc_nmake,LIBFLAGS将传递给链接器.要获得详细输出,您可以添加

QMAKE_LIBFLAGS += /VERBOSE

要验证它是否有效,可以在任何系统上调用qmake -spec win32-msvc2008;特定的msvc版本并不重要.

对于unixmake,AR用于调用链接器,因此您必须将标志添加到QMAKE_AR.要获得详细输出,您可以添加

QMAKE_AR += -v

要验证,请调用qmake -spec macx-llvm;任何其他unix规范也应该工作.

转载注明原文:qt – 如何在将静态库与qmake链接时提供链接器选项? - 代码日志