qmake:如何将库链接两次?

Mey*_*sam 5 c++ qmake circular-dependency

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

LIBS = -lA \
       -lB \
       -lA \
       -lC \
       -lD
Run Code Online (Sandbox Code Playgroud)

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

Nik*_* C. 5

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

配置 += no_lflags_merge

但是,这将导致无法清除所有重复的库。但这在实践中应该无关紧要。

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

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

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