Qtの「proファイルと、priファイル」

Qtのプロジェクトを始める前にproファイルや、priファイルについて説明します。
デフォルトの状態でqtのファイルを立ち上げるとこのような状態になります。

f:id:nakadasanda1:20200624192441p:plain

新しいソースコードをqt Createrで作成すると、この中に無秩序にソースコードが入っていきます。
これでは、どこに何のファイルがあるかよくわからなくなってしまうので、フォルダーごとに区切って管理していきたい。

理想的には、こんな感じ

f:id:nakadasanda1:20200624193332p:plain

解決策

qt Createrは、ファイル/ディレクトリーの関係を.proファイルまたは、.priファイルを見て管理しているらしいです。

ということでこの.proファイルまたは、.priファイルをごにょごにょと、いじればよさそうですね。

.proファイルと、.priファイルの違い、

  • .proファイル
    拡張子が.pro のファイルは、project ファイルと呼びます。
    このファイルは、Qmakeを実行するものです。
    またQtのプロジェクトを開くには、この.proファイルを開くことで、プロジェクトを開くことができます。

  • .priファイル
    拡張子が.priファイル のファイルはProjectInclude Fileと呼ばれます。
    .priは名前の通りインクルードファイルです。
    これには、C++でメインのプロジェクトと、いくつかのライブラリーにより構成されるプログラムと同じようなものです。

これらの.pro ファイルにプロジェクト共通の設定とコードを記述し、必要に応じていくつかの.priファイルを含めることができます。これは、実際によく使われます。

.proファイル、.priファイルの書き方

.proファイル、.priファイルの記述方法は、まったく同じです。

基本的な操作について最初に学びます。

コメントの仕方

プロジェクトファイル内でコメントを書きたい場合は、普通のmakeファイルや、bashファイルのように#以降の行がコメントになります。

QT += core
#ここがコメントです。

変数の宣言

変数は、変数名と価を = または、+= で結ぶことで価を代入します。
複数宣言する場合には、バックスラッシュ\で区切ります。

QT += gui

MACRO = "debug"

カレントディレクトリの扱い方

$$PWDをつけることでカレントディレクトリとして扱えます。

$$PWD/src

この場合は、同じファイル内にあるsrcというフォルダーを指定します。

デフォルトの変数

Qtには、多くのデフォルトで設定すべき変数があります
プロジェクトで使用されるファイルについて説明します。

QT

QTのモジュールを使用するときに使用します。
以下のようなモジュールがあります。
- core
- gui
- network
- opengl
- svg
- xml

TARGET

生成する実行ファイル名を指定します。
デフォルトで、プロジェクト名になります。

TEMPLATE

makefileの種類を指定します

  • app
    アプリケーションとしてビルドする

  • lib
    ライブラリーとしてビルドする

SOURCES
Projectで使用するソースファイルを指定します。

SOURCES += \
    src/main.cpp \
    src/AppConfig.cpp \
    src/MainWindow.cpp \

HEADERS
ヘッダーファイルを読み込む

HEADERS  += \
    src/MainWindow.h \

FORMS
gui ファイルを読み込む

FORMS    += \
    src/MainWindow.ui \

RESOURCES
画像ファイルなどのリソースを読み込む

RESOURCES += \
    resources/resources.qrc

INCLUDEPATH
指定されたディレクトリをヘッダファイルを探索するリストとして使います。

f:id:nakadasanda1:20200624212845p:plain

上記のような構成の場合 a.cppや、b.cppからab.hを#includeする場合

#include "../dir_h/ab.h"

と書く必要がありますが .proファイル、.priファイル

INCLUDEPATH += $$PWD/src

このように書くことで、 a.cppや、b.cppの#includeを

#include "ab.h"

と記述することができます。

LIBS
ライブラリーを追加する。
オプションを使う必要がある場合は、付ける。

LIBS += -L$$PWD/lib/SDL2/x64 -lSDL2

include(xxx.pri)

別のプロジェクトなどを、現在使用しているプロジェクトに追加することができる。

最後に

今回は、力尽きましたので、フォルダーをいい感じにまとめる方法については、次回に書いていきたいと思います。