GNU/Linux >> Linux の 問題 >  >> Linux

CMAKE_PREFIX_PATH は、CMake が Qt5 を見つけるのに役立ちません

次の不足しているパッケージをインストールしました:

sudo apt-get install qtbase5-dev
sudo apt-get install qtdeclarative5-dev

現在、プレフィックスを付ける必要はありません:

CMakeList:

    :~/junk/qtquick_hello_cmake$ cat CMakeLists.txt
    cmake_minimum_required(VERSION 2.8.12)
    
    project(qtquick_hello_cmake)
    
    set(CMAKE_INCLUDE_CURRENT_DIR ON)
    set(CMAKE_AUTOMOC ON)
    set(CMAKE_AUTORCC ON)
    
    find_package(Qt5 COMPONENTS Quick Core REQUIRED)
    
    qt5_add_resources(RESOURCES qml.qrc)
    
    add_executable(${PROJECT_NAME} "main.cpp" "qml.qrc")
    
    qt5_use_modules(${PROJECT_NAME} Quick Core)
    
    target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Quick)

新しい出力:

:~/junk/qtquick_hello_cmake$ ls
build  CMakeLists.txt  main.cpp  main.qml  qml.qrc

:~/junk/qtquick_hello_cmake$ cd build/
:~/junk/qtquick_hello_cmake/build$ rm -rf *

:~/junk/qtquick_hello_cmake/build$ cmake ../
-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/.../junk/qtquick_hello_cmake/build

エラーはなくなりました。

おかげで:
https://answers.ros.org/question/236324/could-not-find-a-package-configuration-file-provided-by-qt5widgets/
https://askubuntu.com/questions/508503/whats-the-development-package-for-qt5-in-14-04


macOS の場合、ターミナルで次の変数をエクスポートします。

export CMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.15.1/  

別のバージョンがある可能性があります。使用しているバージョンを確認し、それに応じて最後のパス コンポーネントを変更してください。

ビルドの再構成を発行する

cmake ../

失敗した find_package に関する CMake エラー メッセージ CMAKE_PREFIX_PATH の設定 変数

<ブロック引用>

「Qt5」のインストール プレフィックスを CMAKE_PREFIX_PATH に追加します

なんとなく誤解を招く。 「インストールプレフィックス」についてのみ説明していますが、このインストールはまだ必要です Qt5Config.cmake を含む または qt5-config.cmake find_package によって発見可能な内部のファイル .

しかしメッセージ

<ブロック引用>

「Qt5」が別の開発パッケージまたは SDK を提供する場合は、それがインストールされていることを確認してください。

明確です:

必要な構成ファイルを含む開発パッケージをインストールする必要があります。

上記はすべて CONFIG にのみ適用されます find_package のモード 、「検索」スクリプトが CMake でも、このコマンドを使用する CMake プロジェクトでも提供されていない場合。


Linux
  1. Grepを使用して行の最後のアイテムを検索しますか?

  2. Kali Linux のパッケージを見つける

  3. Linux での logname コマンドの例

  1. クロスコンパイラldd

  2. CMAKE での OS 固有の手順:方法は?

  3. ファイルが存在しない場合にのみファイルを作成する方法は?

  1. あるファイルの内容を別のファイルで検索する

  2. Windows 上の Cmake は共有ライブラリ パスを追加しません (Linux で動作します)

  3. cmake --version は /usr/bin/cmake を指し、どの cmake は /usr/local/bin を指しますか