Qt内のプロジェクトファイル(.pro)
4633 ワード
C++ライブラリを使用するため、端末環境で直接操作したくないため、Qtというツールを利用しようとしたが、実際に使用している間にいくつかのエラーが発生し、検証の後、いくつかのヘッダファイルとライブラリファイルが追加されていないため、問題は最終的に解決したが、この過程で見た資料を書いて忘れないようにした.
qmake
Qtは、qmakeというプロジェクト構築を管理するためのツールを提供しています.このツールを使用すると、使用するさまざまなソースファイルを制御したり、各プロジェクトファイルの情報をMakefileに拡張したりして、コンパイルやリンクを実行することができます.
Qt creatorの新規プロジェクトウィザードを使用して作成されたテンプレートプロジェクトで、サードパーティ製のものが使用されていない場合は、コードをノックした後、直接コンパイルして実行します.ただし、サードパーティ製ツールを使用したり、プロジェクトテンプレートを変更したりする場合は、プロジェクトファイル(.pro)を操作する必要があります.
プロジェクトファイルとはプロジェクトファイルはQtプロジェクトのそれです.Pro末尾のファイル プロジェクトファイルは、通常、ソースファイル、ヘッダファイル、一般構成情報、および特定のアプリケーションの詳細のリスト を含む.プロジェクトファイルは、注釈、変数宣言、組み込み関数、およびいくつかの簡単な制御構造 を含む多くの異なる要素を含むことができる.プロジェクトファイルを使用して、複雑なプロジェクトのためにより複雑なプロジェクトファイル を作成することもできます.
実は上記のことは一時的にはあまり理解できないかもしれませんが、実際にコードを編んだことがあるので、proファイルの内容を見た後ではあまり理解できません.
プロジェクトファイルの要素
実はプロジェクトファイルは主にqmakeのために橋を架けているが、実はcmakeのCMakeListsに似ている.txtファイル.cmakeを知っていれば、両者を対比して見ることができます.qmakeのプロジェクトファイルには異なる要素が存在します.
変数#ヘンスウ#
プロジェクトファイルでは、変数を使用して文字列リストを保存します.
qmakeは、すべてのプロジェクトファイル変数を検索し、これらの変数内容を使用してMakefileファイルに書き込まれた内容を決定します.
変数は内部でも使用でき、一時値リストを格納し、既存の値リストを新しい値で上書きまたは拡張できます.
値リストの変数は次のように割り当てられます.
一般的な変数とその説明は次のとおりです.
変数名
説明
CONFIG
プロジェクト構成オプションの生成
DEstdIR
実行可能ファイルまたはバイナリファイルの格納場所
FORMS
ユーザインタフェースコンパイラ(uic)が処理するUIファイルのリスト
HEADERS
プロジェクトの作成時に使用するヘッダファイル(.h)リスト
QT
プロジェクトで使用するQtモジュールのリスト
RESOURCES
最終プロジェクトに含まれるリソースファイル(.qrc)リスト
SOURCES
プロジェクトの作成時に使用するソースファイルのリスト
TEMPLATE
プロジェクトで使用するテンプレート.この変数は、構築出力結果がアプリケーション、ライブラリ、またはプラグインであることを決定します.
変数の内容は、前に「$$」を付けて読み込むことができます.これにより、1つの変数の内容を別の変数に割り当てることができます.
スペース
通常、変数に値を割り当てる場合は、スペースで値を分割します.値にスペースを指定する場合は、二重引用符を使用します.
この形式は一般に、スペースを含むパス、特にwindowsプラットフォームの下のINCLUDEPATHおよびLIBS変数を処理するために使用される.
コメント
プロジェクトファイルにコメントを追加できます.コメントは、行の最後まで「#」で始まります.例:
変数付与に文字#が含まれている場合は、組み込み変数LITERAL_を使用する必要があります.HASH.
組み込み関数
qmakeには、使用する変数の内容を有効にするためにnei関数が組み込まれています.関数include()がファイル名をパラメータとする場合、関数include()を使用するプロジェクトファイルに、指定したファイルの内容が含まれるようにします.
内蔵関数はいろいろありますが、それぞれ役割が異なり、具体的には公式マニュアルを見ることができます.
せいぎょりゅう
制御フローはプログラミング言語の分岐構造に似ており,異なる条件下での制御を実現できる.プロジェクトファイルでは、役割ドメインで実装されます.
上記のコードは、条件が真である場合にのみ、カッコ内の付与を行います.すなわち、win 32が存在する場合には、カッコ内の文を実行します.左括弧は条件と同行しなければならないことに注意してください.
いくつかの単純な例
CONFIG変数を使用して、プロジェクト構成のオプションと機能を指定します.
QT宣言に必要な拡張モジュール:
構成機能
機能(.prf)ファイルで指定した他の構成機能を使用してqmakeを設定できます.これらの追加の機能は、通常、構築中に使用されるカスタムツールをサポートします.コンストラクションプロセスに機能を追加するには、CONFIG変数に機能名(機能ファイル名の語幹)を追加する必要があります.pkg-configでサポートされている外部ライブラリbusおよびoggの場合:
LIBSとINCLUDEPATHによるサードパーティライブラリの指定
その他の*.pr*ファイル
Proファイルは前に简単に言いましたが、実はこのファイルが何なのか、中の构造がどんなものなのかさえ知っていれば.具体的にプロジェクトを構築する際にパラメータを設定すればよい.記憶するなら、中のパラメータは本当に多いです.
実は.Proファイルの他に、そのファイルの一部を単独で取り出すことで、他の*を形成することができる.pr*ファイル.
.pri iはincludeの頭文字です. 単純な項目については、1つしか必要ない場合がある.Proファイルで十分です.全部であまりありませんから. しかし、大きなプロジェクトでは、多くの設定が行われています.この場合、私たちはその一部を取り出して、単独で1つのファイル にすることができます.
その後、は、前述の組み込み関数include()で を含む.
つまり私たちのProファイルには、次のような言葉があります.
.prf簡単な例では、機能に対応する単語がfeatureである「構成機能」について述べる.prfのfはfeatureの頭文字 ですこのファイルも含める必要がある.Proファイルの 一般的にCONFIG変数を利用する配置は.prf CONFIG変数で構成を追加するたびに、固定ディレクトリから対応付けがロードされる.prfファイル featuresファイル名は、 と小文字でなければなりません. featuresが存在するディレクトリは$$QTDIR/mkspecs/features である.その後CONFIG変数または内蔵関数loadで をロードする.
つまり私たちのProファイルには、次のような言葉があります.
または、
.prl .prlのlはlinkの頭文字 を表しています.つまりprlプライマリとライブラリの生成と使用について 静的ライブラリを生成するには、次の構成が必要です.
その後、ライブラリと同じ名前のものが生成されます.prlファイル.
qmake
Qtは、qmakeというプロジェクト構築を管理するためのツールを提供しています.このツールを使用すると、使用するさまざまなソースファイルを制御したり、各プロジェクトファイルの情報をMakefileに拡張したりして、コンパイルやリンクを実行することができます.
Qt creatorの新規プロジェクトウィザードを使用して作成されたテンプレートプロジェクトで、サードパーティ製のものが使用されていない場合は、コードをノックした後、直接コンパイルして実行します.ただし、サードパーティ製ツールを使用したり、プロジェクトテンプレートを変更したりする場合は、プロジェクトファイル(.pro)を操作する必要があります.
プロジェクトファイルとは
実は上記のことは一時的にはあまり理解できないかもしれませんが、実際にコードを編んだことがあるので、proファイルの内容を見た後ではあまり理解できません.
プロジェクトファイルの要素
実はプロジェクトファイルは主にqmakeのために橋を架けているが、実はcmakeのCMakeListsに似ている.txtファイル.cmakeを知っていれば、両者を対比して見ることができます.qmakeのプロジェクトファイルには異なる要素が存在します.
変数#ヘンスウ#
プロジェクトファイルでは、変数を使用して文字列リストを保存します.
qmakeは、すべてのプロジェクトファイル変数を検索し、これらの変数内容を使用してMakefileファイルに書き込まれた内容を決定します.
変数は内部でも使用でき、一時値リストを格納し、既存の値リストを新しい値で上書きまたは拡張できます.
値リストの変数は次のように割り当てられます.
HEADERS = mainwindow.h paintwidget.h
一般的な変数とその説明は次のとおりです.
変数名
説明
CONFIG
プロジェクト構成オプションの生成
DEstdIR
実行可能ファイルまたはバイナリファイルの格納場所
FORMS
ユーザインタフェースコンパイラ(uic)が処理するUIファイルのリスト
HEADERS
プロジェクトの作成時に使用するヘッダファイル(.h)リスト
QT
プロジェクトで使用するQtモジュールのリスト
RESOURCES
最終プロジェクトに含まれるリソースファイル(.qrc)リスト
SOURCES
プロジェクトの作成時に使用するソースファイルのリスト
TEMPLATE
プロジェクトで使用するテンプレート.この変数は、構築出力結果がアプリケーション、ライブラリ、またはプラグインであることを決定します.
変数の内容は、前に「$$」を付けて読み込むことができます.これにより、1つの変数の内容を別の変数に割り当てることができます.
TEMP_SOURCES = $$SOURCES
スペース
通常、変数に値を割り当てる場合は、スペースで値を分割します.値にスペースを指定する場合は、二重引用符を使用します.
DEST = "Program Files"
この形式は一般に、スペースを含むパス、特にwindowsプラットフォームの下のINCLUDEPATHおよびLIBS変数を処理するために使用される.
win32:INCLUDEPATH += "C:/mylibs/extra headers"
unix:INCLUDEPATH += "/home/user/extra headers"
コメント
プロジェクトファイルにコメントを追加できます.コメントは、行の最後まで「#」で始まります.例:
# Comments usually start at the beginning of a line, but they
# can also follow other content on the same line.
変数付与に文字#が含まれている場合は、組み込み変数LITERAL_を使用する必要があります.HASH.
組み込み関数
qmakeには、使用する変数の内容を有効にするためにnei関数が組み込まれています.関数include()がファイル名をパラメータとする場合、関数include()を使用するプロジェクトファイルに、指定したファイルの内容が含まれるようにします.
include(other.pro)
内蔵関数はいろいろありますが、それぞれ役割が異なり、具体的には公式マニュアルを見ることができます.
せいぎょりゅう
制御フローはプログラミング言語の分岐構造に似ており,異なる条件下での制御を実現できる.プロジェクトファイルでは、役割ドメインで実装されます.
win32 {
SOURCES += paintwidget_win.cpp
}
上記のコードは、条件が真である場合にのみ、カッコ内の付与を行います.すなわち、win 32が存在する場合には、カッコ内の文を実行します.左括弧は条件と同行しなければならないことに注意してください.
いくつかの単純な例
CONFIG変数を使用して、プロジェクト構成のオプションと機能を指定します.
CONFIG += qt release
QT宣言に必要な拡張モジュール:
QT += network xml
構成機能
機能(.prf)ファイルで指定した他の構成機能を使用してqmakeを設定できます.これらの追加の機能は、通常、構築中に使用されるカスタムツールをサポートします.コンストラクションプロセスに機能を追加するには、CONFIG変数に機能名(機能ファイル名の語幹)を追加する必要があります.pkg-configでサポートされている外部ライブラリbusおよびoggの場合:
CONFIG += link_pkgconfig
PKGCONFIG += ogg dbus-1
LIBSとINCLUDEPATHによるサードパーティライブラリの指定
LIBS += -L/usr/local/lib -lmath
INCLUDEPATH = c:/msdev/include d:/stl/include
その他の*.pr*ファイル
Proファイルは前に简単に言いましたが、実はこのファイルが何なのか、中の构造がどんなものなのかさえ知っていれば.具体的にプロジェクトを構築する際にパラメータを設定すればよい.記憶するなら、中のパラメータは本当に多いです.
実は.Proファイルの他に、そのファイルの一部を単独で取り出すことで、他の*を形成することができる.pr*ファイル.
.pri
その後、
つまり私たちのProファイルには、次のような言葉があります.
include(priname.pri)
.prf
つまり私たちのProファイルには、次のような言葉があります.
CONFIG += prfname
または、
load(prfname)
.prl
CONFIG += create_prl
その後、ライブラリと同じ名前のものが生成されます.prlファイル.