[QT] *.pro、*.pri、*.prf、*.prl ファイルの詳細説明

1. *.pro
qmake のプロジェクト ファイルは誰でもよく知っているものでなければなりません。例に直接移動します。

以下は、典型的な Qt サンプル プログラムの .pro ファイル (propriprfprl.pro) です。

TEMPLATE = app
CONFIG += QT
QT += core gui
 
TARGET = propriprfprl
 
SOURCES += main.cpp/
        widget.cpp
HEADERS  += widget.h
FORMS    += widget.ui
  • 最初の3行はqmakeのデフォルト値です
  • TARGET この行はプロジェクト名を指定します

2、*.pri

どういう意味ですか? 最初の文字を含める(含める)。C や C++ のヘッダー ファイルと同様に、*.proファイルの一部を*.pri ファイルに入れてインクルードすることができます。

前の例に従って、ソース ファイルの設定を分離し、propriprfprl.pri ファイルに置きます。

SOURCES += main.cpp/
        widget.cpp
HEADERS  += widget.h
FORMS    += widget.ui

この時点で、propriprfprl.pro ファイルは次のように簡略化できます。

TEMPLATE = app
CONFIG += QT
QT += core gui
 
TARGET = propriprfprl
include(propriprfprl.pri)
  • 使用は何ですか?この例では本当に役に立たず、代わりにファイルが 1 つ増えてしまい、さらに面倒です。
  • ただし、大規模なプロジェクトに複数の*.proファイルが含まれている場合、これらの専門家は、現時点では非常に必要ないくつかの共通設定または必須ファイルを必要とします。

3、*.prf

また神馬の話ですか?機能の最初の文字

pri ファイルと同様に、このファイルも pro ファイルに含まれています

  • ただ:それはもっと隠されています
  • あなたはあまりにも頻繁にそれに対処してきたので、それに気づいていなかったかもしれません
  • この例は実際に使用されています。これは CONFIG+=QT です。

CONFIG で何かを指定すると、qmake は対応する機能ファイルをロードしようとします。

  • Qt インストールディレクトリ内の mkspecs/features/qt.prf
  • 機能ファイルのファイル名は小文字である必要があります
  • qmake はどのディレクトリで機能ファイルを検索しますか?
    当面は、上記の $$QTDIR/mkspecs/features だけを知っておいてください。

独自の機能ファイルを作成します: propriprfprl.prf

win32:CONFIG += console
  • win32 プログラムにコンソールを追加するのは、ちょっとしたワンショットです。
  • そのファイルを前に説明したディレクトリに置きます

次にproファイルを追加します

CONFIG += propriprfprl

CONFIG += コンソールと同じ効果が見られますか?

注: また、load コマンドを使用して prf ファイルをロードすることもできます。たとえば、前のコマンドは次のコマンドと同等であると考えることができます。

ロード(propriprfprl)

4、*.prl

l これはわかりやすいですね、リンク(リンク)の最初の文字です。これは主に静的ライブラリの生成と使用に密接に関連しています (動的ライブラリにもこのファイルがある場合があります。Qt インストール ディレクトリの下の lib ディレクトリにアクセスして確認してください)。

  • 静的ライブラリを生成するときは、次の構成を使用する必要があります (その後、*.prlライブラリ ファイルと同じ名前のファイルを生成します)。
CONFIG += create_prl
  • プロジェクトの TEMPLATE が app の場合、次の命令が自動的に追加されます (ライブラリ ファイルを検索するときに、対応するファイルを見つけようとします*.prl)
CONFIG += link_pri

では、このファイルは何に役立つのでしょうか? 誰もがよく知っている QextSerialPort1.2 ライブラリ (Windows の場合) の例を挙げると、次のようになります。

  • コンパイル時には、ライブラリ ファイル setupapi.lib advapi32.lib user32.lib が必要です。
  • 静的ライブラリにコンパイルすると、これら 3 つのライブラリ ファイルの情報は含まれません。
  • したがって、この QextSerialPort 静的ライブラリを使用する場合でも、これらのライブラリ ファイルを指定する必要があります。

prl ファイルがある場合、そのファイルには依存関係情報が含まれます。

QMAKE_PRL_BUILD_DIR = D:/buildlib
QMAKE_PRO_INPUT = buildlib.pro
QMAKE_PRL_TARGET = qextserialport-1.2
QMAKE_PRL_CONFIG = include_source_dir incredibuild_xge lex yacc warn_on uic resources incremental_off windows release ReleaseBuild Release build_pass qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe stl exceptions rtti mmx 3dnow sse sse2 release ReleaseBuild Release build_pass qt qextserialport-buildlib create_prl qextserialport-uselib qextserialport-static static debug_and_release build_all release ReleaseBuild Release build_pass no_autoqmake staticlib static moc thread
QMAKE_PRL_LIBS = setupapi.lib advapi32.lib user32.lib d://Qt//4.7.0//lib//QtGui4.lib d://Qt//4.7.0//lib//QtCore4.lib 

おすすめ

転載: blog.csdn.net/Cappuccino_jay/article/details/125947018