我的操作系统(Ubuntu12.04)附带了预先打包的Qt4库和其他相关内容。但是我想使用最新的普通Qt 5.2.1,我已经安装了它,它运行良好,假设我编译了依赖于Qt的这一框架。
我要做的是将QT5.2.1库添加到$LD_LIBRARY_PATH
中。我的QT5.2.1主路径是/opt/Qt5.2.1/5.2.1/gcc_64
,因此我的$LD_LIBRARY_PATH
包含/opt/Qt5.2.1/5.2.1/gcc_64/lib
(以及与Qt创建者相关的内容的/opt/Qt5.2.1/Tools/QtCreator/lib
)
但是,最近我正在尝试编译最新的gnu 八度。它的-l
/-I
/-L
脚本通过调用pkg-config
查找Qt cflags
(即pkg-config
标志)。
据我所知,pkg会查找适当的.pc
文件,以获得与所有编译/链接标志相关的确切信息。我的系统(Ubuntu)在/var/lib/dpkg/info/pkg-config.list
中维护了所有必需的/var/lib/dpkg/info/pkg-config.list
文件位置的列表。但是我在Ubuntu12.04上没有任何$PKG_CONFIG_PATH
环境变量(我不知道为什么)。
我新安装的Qt5在/opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/
中有一组.pc
文件。
那么,如何使pkg-config识别新安装的QT5.2.1 ?中的开发库?
我知道只要从Ubuntu安装Qt4 -dev
软件包就可以解决这个问题,但我不想这么做。我需要香草Qt 5.2.1用于其他用途。
注:
/opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/
添加到pkg-config.list,但是pkg-config没有相应地更新编译标志。/opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/
)添加到$PKG_CONFIG_PATH
也不起作用。这里是八度配置脚本输出。
发布于 2014-04-19 00:50:21
这个问题是因为Octave正在搜索QtCore.pc
、QtGUI.pc
和QtNetwork.pc
,但是Qt5似乎已经将它们重命名为Qt5Core.pc
、Qt5GUI.pc
和Qt5Network.pc
。一个解决方案是为它们创建符号链接:
cd /opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/
ln -s ./Qt5Core.pc ./QtCore.pc
ln -s ./Qt5GUI.pc ./QtGUI.pc
ln -s ./Qt5Network.pc ./QtNetwork.pc
cd octave_build_dir
export $PKG_CONFIG_PATH="/opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/"
./configure # with fingers crossed
我不知道为什么名字变了。我想知道是否应该有某种机制将不版本放在$PKG_CONFIG_PATH
中,并且更改您的首选项将更改链接以更正版本。
最后,您的config.log
和config.status
将比配置的输出更有用。上述文件将具有您的配置的实际命令和输出。
发布于 2018-05-23 17:21:11
carandraug的答案是正确的,但我不需要对.pc文件进行符号链接(QT5.9.5)。要防止删除其他pkg-config地址,请导出PKG_CONFIG_PATH
,如下所示:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/
为了在启动和系统范围内执行它(不需要在每个终端会话中导出),将这些行放在“.bashrc”中的底线:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/
export PKG_CONFIG_PATH
https://stackoverflow.com/questions/22825771
复制相似问题