Qwt 版本冲突 QTCREATOR
Posted
技术标签:
【中文标题】Qwt 版本冲突 QTCREATOR【英文标题】:Qwt version conflict QTCREATOR 【发布时间】:2016-09-28 09:42:50 【问题描述】:我在 Ubuntu 14.04 上部署使用 QtCreator 生成的 .exe 时遇到问题。我安装了几个版本的 qwt(我需要这些,一个用 qt4 编译,另一个用 qt5 编译)。 问题是,我不知道为什么,但无论我做什么,Qt 似乎都将错误版本的 qwt 链接到我的 .exe .. 当我在我的 .exe 上使用 LDD 时,它总是显示 /usr/lib/libqwt.so.6 .事情是我正在像这样在我的 .pro 中链接我需要的版本:
LIBS += -L/usr/local/qwt-6.1.2/lib/ -lqwt
在项目配置中,我将 LD_LIBRARY_PATH 设置为 /usr/local/qwt-6.1.2/lib
我的 .exe 仍然没有链接到正确的库。 知道为什么以及如何解决这个问题吗?它当然会在启动时导致分段错误,因为我的程序是用 qt5 而不是 qt4 编译的。 提前致谢
【问题讨论】:
.exe 是指在 Ubuntu 14.04 上编译的应用程序? 【参考方案1】:我解决了我的问题,似乎在 QtCreator 中设置环境变量还不够。在启动 .exe 之前,您还必须在终端中执行此操作,这是我的错。 只需正确设置 LD_LIBRARY_PATH。
【讨论】:
【参考方案2】:您可以尝试将运行时路径添加到链接器标志。在您的 .pro 文件中,您可以添加以下行(它可能也值得在您的 pro 文件中打印您的 QMAKE_LFLAGS):
QMAKE_LFLAGS += "-Wl,-rpath,/usr/local/qwt-6.1.2/lib/"
message ("QMAKE_LFLAGS = $$QMAKE_LFLAGS")
重新编译,然后再次运行 ldd。在运行时也 ldd) 你的程序现在应该首先指向这个位置。
注意 这是假设您使用的是 gnu 编译器!
【讨论】:
我确实尝试过,但不幸的是它不起作用。我用的是MinGW编译器,ldd结果是一样的以上是关于Qwt 版本冲突 QTCREATOR的主要内容,如果未能解决你的问题,请参考以下文章