qmakeでlreleaseがエラー

64ビットWindowsを使っていて、32ビットのコマンドプロンプトやエクスプローラからqmake関係を起動するとおかしくなることがある。qmakeに限らず、64ビット環境での64ビットアプリと32ビットアプリでは環境変数などが一部異なるので、ビルド環境では64ビットの純正コマンドプロンプトやエクスプローラを使ったほうがよい。

qmakeの.proファイルの基礎

qmakeのproファイルの書き方

proファイルの名前

hello.proを作成すると、プロジェクト名がhelloになり出来上がる実行ファイル名もhello.exeになる。

ソースファイルを追加

SOURCES変数にファイルを追加する。

スペースで区切って複数指定してもいい、\ (バックスラッシュ)を行末につけて複数行にすることもできる。

ヘッダファイルを追加

HEADERS変数にファイルを追加する。

WindowsとLinuxで処理を分ける

{ は条件と同じラインに書かなければならない。

ファイルが存在しないときにエラーを表示する

デバッグモードを指定する

CONFIG変数にdebugと設定する。

WindowsのデバッグモードでqDebug()をコンソールに出力する

変数の設定と参照

変数は自分で書いてもいい。参照するには $$ を用いる。

インクルードパスの指定

コメント

# で始めるとコメントになる。

プロジェクトのタイプを指定(アプリかライブラリか)

TEMPLATE変数を使う。

  • app ⇒ アプリケーション
  • lib ⇒ ライブラリ

デフォルトはapp

CONFIGにいろいろ設定

  • qt ⇒ qtライブラリを使う
  • windows ⇒ WindowsのGUIアプリケーション
  • console ⇒ Windowsのコンソールアプリケーション

Qtライブラリを指定

QT変数を使う。

coreとguiはデフォルトで設定される。デフォルトから外したいときは += ではなく = を使う。あるいは -= を使う。

Featureを使う

Featureとは.prfで記述される特別な機能。CONFIGに機能を設定して使用する。

pkg-configを利用して、D-Busとoggライブラリを利用する。

Qt以外のライブラリの指定

ライブラリをつくる

ライブラリをつくるにはTEMPLATE変数にlibを設定する。そのうえでCONFIG変数でライブラリのタイプを指定する。

  • dll ⇒ ライブラリはDLL
  • staticlib ⇒ ライブラリはスタティックライブラリ
  • plugin ⇒ ライブラリはプリグイン

環境変数の取得

$$(ENVVAL)を使う。

QtのプロジェクトをVisual Studio 2017で開く

コマンドプロンプトを開く

メニューから[Visual Studio 2017]→[Developer Command Prompt for VS 2017]を開き、VS2017の環境でコマンドプロンプトを開きます。(日本語版の場合名前が日本語になっていると思うので読み替えてください。)

開いたらQtプロジェクトのあるフォルダへ移動します。

qmakeへのパスを通す

上記のqmake.exeへのパスは自分の環境に合わせます。

qmakeでVisual Studioのプロジェクトファイルを作ります

成功するとvcxprojが作られます。

vcxprojを開く

終わりに

vcxprojを開くためには毎回qmakeへのパスを通す必要があるので、出来上がったvcxprojをエクスプローラなどから起動してもうまくビルドできません。