3

我正在尝试使用自定义 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): undefined reference to `qt_version_tag') 因为软件是用 5.8.0 编译的但随后链接到 5.5.1。

最后,答案是:如何安排生成的Makefile中的库路径的顺序?

谢谢!

4

0 回答 0