我想在使用qmake构建 static library 时为链接器提供选项 . 假设我在使用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版本无关紧要 .
1 回答
在
staticlib
项目中,LFLAGS
未传递给链接器 . 实际上,没有记录的方法来传递这样的标志 .该解决方案依赖于发电机 .
对于
msvc_nmake
,LIBFLAGS
将传递给链接器 . 要获得详细输出,您可以添加要验证它是否有效,可以在任何系统上调用
qmake -spec win32-msvc2008
;特定的msvc版本并不重要 .对于
unixmake
,AR
用于调用链接器,因此必须将标志添加到QMAKE_AR
. 要获得详细输出,您可以添加要验证,请调用
qmake -spec macx-llvm
;任何其他unix规范也应该工作 .