2017-10-29 8 views
0

私のコンピュータ(Ubuntu-Gnome)には2つのQtバージョンがインストールされています。 1つはパッケージマネージャ(5.x)で、もう1つは手動で/opt/Qt(5.9)になります。CMake:Qtパッケージを見つけたら、2つのQtバージョンがインストールされています

1つのプロジェクトでは、/opt/Qt -install with CMakeを使用する必要があります。しかし、正しいインストールfind_package(Qt5Core 5.9 COMPONENTS CORE REQUIRED)見つからない:

Could not find a configuration file for package "Qt5Core" that is 
    compatible with requested version "5.9". 

    The following configuration files were considered but not accepted: 

    /usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreConfig.cmake, version: 5.7.1 

を私はパスのすべての亜種でCMakeのに検索パスを追加するCMAKE_PREFIX_PATHCMAKE_MODULE_PATHを設定しようとしましたが、それはまったく動作しません。

2番目のインストールの検索パスを/opt/Qt/に正しく設定するにはどうすればよいですか?


アップデート@Florian入力するため

でこれは動作します:

cmake -DQt5_DIR:PATH=/opt/Qt/5.9.2/gcc_64/lib/cmake/Qt5Core 

と一緒

find_package(
    Qt5Core 5.9 
    COMPONENTS 
     Core 
    REQUIRED 
) 

をが、この場合には、私は唯一のQT5Coreを見つけました。

find_package(
    Qt5 5.9 
    COMPONENTS 
     Core 
    REQUIRED 
) 

一緒

cmake -DQt5_DIR:PATH=/opt/Qt/5.9.2/gcc_64/lib/cmake/Qt5 

第二編集

でいつも私が呼び出しに完全なパスを置くことを避けるために:同様のすべてのコンポーネントのために働くように見えることとこれを私のCMakeLists.txtに加えてください。

set(QT_INSTALL_PATH /opt/Qt) 
file(GLOB_RECURSE sres ${QT_INSTALL_PATH}/*/Qt5Config.cmake) 
get_filename_component(Qt5_DIR ${sres} DIRECTORY) 

その後、これは正常に動作します:PATH =は/ opt/QT/5.9/gcc_64/libに/ cmakeの/:

find_package(
    Qt5 5.9 
    COMPONENTS 
     Core 
     Network 
    REQUIRED 
) 
+0

あなたは 'cmakeの-DQt5Core_DIRのようなものを試してみましたQt5Core ..'? – Florian

+0

@Florianはい - でも動作しません。今度は 'find_package'に渡す全てのパスのリストを生成しようとします。私は言うべき方法がないと思っています:これはQtのベースフォルダです。ここで再帰的に検索してください。 – Alex44

+0

奇妙な。 'cmake -DCMAKE_IGNORE_PATH ="/usr/lib/x86_64-linux-gnu/cmake/Qt5Core "'のような "不要な"パスを無視することで、別の方法で試してみることができます。 – Florian

答えて

1

使用cmake -DQt5_DIR:PATH=/opt/Qt5/5.9.2/gcc_64/lib/cmake/Qt5

Documentation

関連する問題