gpt4 book ai didi

qt - 使用 qmake 链接静态库时如何提供链接器选项?

转载 作者:行者123 更新时间:2023-12-04 10:18:25 26 4
gpt4 key购买 nike

我想在构建 时为链接器提供选项静态库使用 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 链接静态库时如何提供链接器选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18663412/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com