2017-02-24 128 views
0

我是相当新的Linux和我使用Ubuntu 16.04 LTS 64位。错误与CMAKE和手动编译QT4

我收购了一个开源代码,我需要用cmake编译它。 此代码需要QT4。

我下载了一个QT4.8.6开源文件并手动编译它们。 (这是需要的,因为QT不再支持针对Linux预编译的QT4)。

我将我的“qmake”目录添加到我的PATH变量中。 echo $ {PATH}显示。

当我编译与C进行编码,将出现以下错误:

CMake的错误在 /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (消息):无法找到的Qt4(丢失:QT_MOC_EXECUTABLE QT_RCC_EXECUTABLE QT_UIC_EXECUTABLE)(发现版 “4.8.6”)调用堆栈 (最近一次调用在前):
/usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE )
/usr/share/cmake- 3.5 /模块/ FindQt4.cmake:1333 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)的CMakeLists.txt:20(FIND_PACKAGE)

帮助是非常赞赏。

回答

0
  1. 你并不需要从qt.io下载的Qt 4,Ubuntu的16.04既有Qt 4.8.7Qt 5.5.1在仓库

  2. cmake的认定通过寻找qmake二进制和其它QT编译和可用二进制文件。不幸的是,Qt5和Qt4都有这些二进制文件,Ubuntu通过安装Qt4到/usr/lib/x86_64-linux-gnu/qt4解决了这个问题。您可以通过安装包qt4-default使Qt4的缺省值(一个在你的路径):sudo apt install qt4-default这将创建了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),并删除您的自定义生成Q t 4和PATH修改。

+0

非常感谢。它实际上是这样工作的。我不知道Ubuntu提出Qt4作为一个包。再次感谢你。 –

+0

没问题!你可以通过点击左边的复选标记来接受答案吗? –