qmake:如何连接两次图书馆?

时间:2013-08-20 06:01:14

标签: c++ qmake circular-dependency

我需要将我的libA.a文件中的qmake库链接两次:

LIBS = -lA \
       -lB \
       -lA \
       -lC \
       -lD

qmake正在运行-lA时删除第一个g++。我该怎么办?

2 个答案:

答案 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)