2017-02-24 122 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

沒問題!你可以通過點擊左邊的複選標記來接受答案嗎? –