我需要将我的libA.a
文件中的qmake
库链接两次:
LIBS = -lA \
-lB \
-lA \
-lC \
-lD
但qmake
正在运行-lA
时删除第一个g++
。我该怎么办?
答案 0 :(得分:4)
告诉qmake禁用所有LIBS标志的合并:
CONFIG += no_lflags_merge
但是,这将导致无法清除所有重复的库。但这在实践中无关紧要。
或者,您可以欺骗qmake,以便它找不到重复的库;因为它只匹配字符串而不是真正解析库标志,所以你可以这样做:
LIBS += -lA -lB -l A -lC -lD
请注意-lA
和-l A
之间的区别。这确保了qmake看不到那些标志是相等的,即使从编译器的角度来看,它们是相等的,因为编译器执行实际的命令行参数解析而qmake没有。
答案 1 :(得分:0)
怎么样:
QMAKE_LFLAGS += -( -lA -lB -)
编辑:你试过吗
QMAKE_LFLAGS += -( -lA -lB -lC -lD -)
这个语法的作用是它将解析库之间的所有依赖关系,即使它们有点递归(A :: stuff需要B :: stuff需要C :: stuff需要A :: stuff)