CMAKE错误和手动编译的QT4

Error with CMAKE and manually compiled QT4

我是 linux 的新手,我正在使用 Ubuntu 16.04 LTS 64 位。

我获取了一个开源代码,需要用cmake编译。 此代码需要 QT4。

下载了一个QT4.8.6的开源文件,手动编译。 (这是必需的,因为 QT 不再支持 linux 的预编译 QT4)。

我将我的 "qmake" 目录添加到我的 PATH 变量中。 echo ${PATH} 表明。

当我用CMAKE编译代码时,出现如下错误:

CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message): Could NOT find Qt4 (missing: QT_MOC_EXECUTABLE QT_RCC_EXECUTABLE QT_UIC_EXECUTABLE) (found version "4.8.6") Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.5/Modules/FindQt4.cmake:1333 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) CMakeLists.txt:20 (FIND_PACKAGE)

非常感谢您的帮助。

  1. 您不需要从 qt.io 下载 Qt 4,Ubuntu 16.04 已编译 Qt 4.8.7 and Qt 5.5.1 并且在存储库中可用

  2. cmake 通过查找 qmake 二进制文件和其他二进制文件来找到 Qt。不幸的是,Qt5 和 Qt4 都有这些二进制文件,Ubuntu 通过将 Qt4 安装到 /usr/lib/x86_64-linux-gnu/qt4 解决了这个问题。您可以通过安装软件包 qt4-default: sudo apt install qt4-default 使 Qt4 成为默认设置(您路径中的那个),这将从特定于 qt4 的文件夹创建符号链接(例如 qmake 从 /usr/lib/.../qt4/bin/qmake/usr/bin/qmake。现在,qmake --version 应该打印 Using Qt version 4.8.7 in /usr/lib/x86_64-linux-gnu

  3. 这仅适用于在命令行上使用 cmake 时。如果您使用 QtCreator,您的套件配置将适用。

我认为解决问题的最简单方法是使用 Ubuntu 提供的 Qt 4(通过安装 qt4-default),并删除自定义构建 Qt 4 和 PATH 修改。