5

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

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

但是在运行时qmake删除了第一个。我该怎么办?-lAg++

4

2 回答 2

5

告诉 qmake 禁用所有 LIBS 标志的合并:

配置 += no_lflags_merge

但是,这将导致所有重复的库都不会被清理。不过,这在实践中应该无关紧要。

或者,您可以欺骗 qmake 使其找不到重复的库;因为它只匹配字符串并且不真正解析库标志,你可以这样做:

LIBS += -lA -lB -l A -lC -lD

-lA注意和之间的区别-l A。这确保 qmake 不会将这些标志视为相等,即使从编译器的角度来看,它们是相等的,因为编译器会执行实际的命令行参数解析,而 qmake 不会。

于 2013-08-20T07:10:58.290 回答
0

关于什么 :

QMAKE_LFLAGS += -( -lA -lB -)

?

编辑:你试过了吗

QMAKE_LFLAGS += -( -lA -lB -lC -lD -)

该语法的作用是解决库之间的所有依赖关系,即使它们有些递归(A::stuff 需要 B::stuff 需要 C::stuff 需要 A::stuff)

于 2013-08-20T06:04:07.803 回答