Qtの中でCMakeのモジュールを追加するための合理的な方法
<div class="show-content-free">
<p>用CMake来组织的工程中要用Qt首先要设置、找到Qt相关模块。主要是通过<code>find_package</code>这个CMake命令。但网上很多教程都过时了,或者不够清晰灵活。因为这部分很常用,所以特别用一篇文章把我们目前在生产环境中使用的方法给大家介绍下。</p>
Qtライブラリのパスを設定します。
多くのQtのバージョンは、弊社の一般的な開発マシンものQtの異なるバージョンの数が装備されています。(:長期のサポート、長期サポート版、最新のLTSは5.9であるLTS)一般的な使用のためにリリースされ、実際の製品はQtののLTS版である一方、個人の暫定的なプロジェクトは、一般的に、Qtの最新バージョンを使用します。
我々のアプローチは、システム内の複数の環境変数を追加することです。Qtの5.9.4とQt5.10.1 32ビットおよび64ビットのライブラリー:例えば、私は、コンピュータ上の4つのバージョンが装備されています。だから、4つの環境変数があります。
環境変数名 | 値 |
---|---|
QTDIR594 | C:\ Qtの\ Qt5.9.4 \ 5.9.4 \ msvc2015 |
QTDIR594_64 | C:\ Qtの\ Qt5.9.4 \ 5.9.4 \ msvc2015_64 |
QTDIR5101 | C:\ Qtの\ Qt5.10.1 \ 5.10.1 \ msvc2015 |
QTDIR5101_64 | C:\ Qtの\ Qt5.10.1 \ 5.10.1 \ msvc2015_64 |
その後CMakeListsを追加しました:
set(CMAKE_PREFIX_PATH $ENV{QTDIR594})
$ENV{}
異なる環境変数を選択し、あなたはQtの別のバージョンに切り替えることができます。
Qtのモジュールを探します
多くのオンラインCMakeの見つけQtの方法は、Qt4版の時代遅れの方法です。今、最新のは次のようになります。
find_package(Qt5 COMPONENTS Core Gui Qml Quick REQUIRED)
Components
増加の背景に、このプロジェクトは、Qtのモジュールを使用することで、例えば、それは上記のこれらのモジュールコア、グイ、QML、クイックを使用して、Qtのクイックプログラムはいくつかのモジュールを使用する必要があり、一般的です。
自動的に関連するオプションを開きます
QRCリソースファイルのQtクイックRCCプログラムは、対応する形成するために前処理する必要がある.h
と.cpp
ファイルを。QObject
C ++派生クラスは、MOCによって処理する必要があります。これらのシステムは、いわゆる規則でコンパイルされています。CMakeのは、自動的に次の2つのオプションを開いて処理に対応する接尾辞を提出することができます:
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
生成されたC ++コンパイラファイル(シャドウビル内でのソースディレクトリとは別の)ディレクトリに置かれ、それは、そうでない場合、コンパイラはこれらのヘッダファイルを見つけることができません、インクルードディレクトリを含むディレクトリをコンパイルする必要がありますされているので:
set(CMAKE_INCLUDE_CURRENT_DIR ON)
それぞれのリンクモジュールを設定する場合
Qtライブラリへのリンクがアップ書き込みに使用された場合最後のステップは次のとおりです。
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Qml Qt5::Quick)
これはで使用されるQtライブラリをリンクします。
完全な例CMakeの
上記のすぐ上の完全な例は確かにそれ以上である、Qtののコードモジュールを追加することについてCMakeのをCMakeのを強調しています。ここでは完全な例を掲載。
cmake_policy(VERSION 3.9)
project(Demo VERSION 0.1)
cmake_minimum_required(VERSION 3.9)
セット(CMAKE_CXX_STANDARD 11)
セット(CMAKE_INCLUDE_CURRENT_DIR ON)
セット(CMAKE_AUTOMOC ON)
セット(CMAKE_AUTORCC ON)
セット(CMAKE_PREFIX_PATH $ ENV {QTDIR594})
find_package(Qt5 COMPONENTSコアグイQMLクイックREQUIRED)
セット(ヘッダ
appglobal.h
)
セット(SOURCES
main.cppに
appglobal.cpp
)
セット(リソース
qml.qrc
)
セット(QMLSの
main.qml
)
add_executable(
{HEADERS}
{} RESOURCES
{PROJECT_NAME}Qt5 ::コアQt5 ::グイQt5 :: QML Qt5 ::クイック)
複合体は、需要にCMakeコマンドの多くになる場合は、この時間の後、我々は特定の技術的な再訪をご紹介します。
<div class="show-content-free">
<p>用CMake来组织的工程中要用Qt首先要设置、找到Qt相关模块。主要是通过<code>find_package</code>这个CMake命令。但网上很多教程都过时了,或者不够清晰灵活。因为这部分很常用,所以特别用一篇文章把我们目前在生产环境中使用的方法给大家介绍下。</p>