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