我想在使用qmake 构建静态库时为链接器提供选项.假设我在使用MSVC构建时想要获得详细的链接器输出.项目文件如下所示:
# mylib.pro
TEMPLATE = lib
TARGET = mylib
CONFIG += staticlib
QT += core
win32-msvc*: QMAKE_LFLAGS += /VERBOSE
unix: QMAKE_LFLAGS += -v
Run Code Online (Sandbox Code Playgroud)
这是整个项目文件.它应该导致一个空的静态库,其中没有对象.
设置既不QMAKE_LFLAGS也没有QMAKE_LFLAGS_STATIC_LIB,也没有LIBS对连接器有任何影响.这些变量中没有设置甚至使它成为Makefile.如果QMAKE_LFLAGS有效,我希望在命令行上看到/VERBOSE或-v传递给链接器,适用于给定的平台.
使用什么makefile生成器并不重要,这种行为似乎是一致的.这两个感兴趣的平台是.
qmake -spec win32-msvc2008
qmake -spec macx-llvm
Run Code Online (Sandbox Code Playgroud)
由于qmake的跨平台特性,您可以在碰巧安装Qt的任何平台上进行测试.这从qt 4.8.4和5.1.1再现qmake.mkspec中给出的msvc版本无关紧要.
在staticlib项目中,LFLAGS不会传递给链接器。实际上,没有记录下来的传递此类标志的方法。
该解决方案取决于发电机。
对于msvc_nmake,LIBFLAGS则传递给链接器。要获得详细的输出,您可以添加
QMAKE_LIBFLAGS += /VERBOSE
Run Code Online (Sandbox Code Playgroud)
为了验证它是否可以工作,可以在任何系统上调用qmake -spec win32-msvc2008;。特定的msvc版本无关紧要。
对于unixmake,AR用于调用链接,所以你必须将标志添加到QMAKE_AR。要获得详细的输出,您可以添加
QMAKE_AR += -v
Run Code Online (Sandbox Code Playgroud)
要进行验证,请调用qmake -spec macx-llvm; 其他任何Unix规范也应该可以正常工作。
| 归档时间: |
|
| 查看次数: |
9470 次 |
| 最近记录: |