安装Qt 5.2.1并使pkg-config识别它

我的操作系统(Ubuntu 12.04)带有一个预先打包的Qt4库和其他相关的东西。 但我想使用最新的香草Qt 5.2.1 ,我已经安装了它,它工作正常,假设我已经编译了这个依赖于Qt的框架 。

我所要做的就是将Qt 5.2.1库添加到$LD_LIBRARY_PATH 。 我的Qt 5.2.1主path是/opt/Qt5.2.1/5.2.1/gcc_64 ,因此我的$LD_LIBRARY_PATH包含/opt/Qt5.2.1/5.2.1/gcc_64/lib (和/opt/Qt5.2.1/Tools/QtCreator/lib为qtcreator相关的东西)

但是,最近我正在尝试编译最新的gnu 八度 。 它的configure脚本通过调用pkg-config查找Qt cflags (即-l / -I / -L标志)。

我知道pkg-config会查找相应的.pc文件,以获取与所有编译/链接标志相关的确切信息。 我的系统(Ubuntu)维护/var/lib/dpkg/info/pkg-config.list中所有必需的.pc文件位置的列表。 但是我在Ubuntu 12.04上没有任何$PKG_CONFIG_PATH环境variables(我不知道为什么)。

我新安装的Qt5在/opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/中有一组.pc文件。

那么, 如何让pkg-config识别新安装的Qt 5.2.1中的开发库呢?

我知道这可以通过从Ubuntu repo安装Qt4- -dev软件包来解决,但我不想这样做。 我需要香草Qt 5.2.1用于其他目的。

注意:

  • 我已经将path/opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/添加到pkg-config.list,但是pkg-config不会相应地更新编译标志。
  • 将path( /opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/ )添加到$PKG_CONFIG_PATH也不起作用。

这里是八度configuration脚本输出 。

这个问题是因为Octave正在搜索QtCore.pcQtGUI.pcQtNetwork.pc但Qt5似乎已经将它们重命名为Qt5Core.pcQt5GUI.pcQt5Network.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 

我不确定为什么名称改变的原因。 我不知道是否应该有一些机制,在unversion版本将在$PKG_CONFIG_PATH ,改变你的喜好将改变链接到正确的版本。

最后,你的config.logconfig.status会比configure的输出更有用。 提到的文件将具有您的配置的实际命令和输出。