我正在尝试使用自定义Qt版本(系统:5.5.1,用户:5.8.0)编译一组库和程序。对于他们中的大多数人来说,一切正常,只有一个。
我已经正确设置了所需的环境变量(事实证明,其他编译库,例如qwt,正确地显示了到Qt 5.8.0版本的链接)。
因此,问题的核心如下:我正在尝试针对5.8.0版本编译的程序X具有/ usr / lib中的依赖项。最后,生成的Makefile如下所示:
LIBS = $(SUBLIBS) -losgQt -L/usr/lib -lpython2.7 -lgdal [...] -L/home/user/Qt5.8.0/5.8/gcc_64/lib -lQt5OpenGL [...]
我省略了将指令与[...]链接起来的其他库。它使用“qmake”程序生成Makefile。问题是gcc具有在自定义Qt目录之前指定的/ usr / lib库路径(添加用于查找依赖项)。这意味着gcc将在5.8.0之前找到系统Qt,然后调用链接阶段的错误((.qtversion [qt_version_tag] + 0x0):未定义引用`qt_version_tag')因为软件是用5.8.0编译的但随后链接到5.5.1。
最后,答案是:如何在生成的Makefile中排列库路径的顺序?
谢谢!