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的主要内容,如果未能解决你的问题,请参考以下文章

Qt & QWT:QwtPlotCurve - 曲线未显示

Windows环境下Qwt安装和使用

jQuery版本之间冲突如何解决?

svn冲突问题详解 SVN版本冲突解决详解

httpclient版本冲突,maven工程中传递依赖导致的版本冲突

svn 命令行怎么解决冲突