Qt5環境構築メモ

アバター
TOMY
記事: 53
登録日時: 13年前
住所: 愛知県
連絡を取る:

Qt5環境構築メモ

投稿記事 by TOMY » 10年前

※手順に関する画像を追加予定ですが取り敢えずまずは文章だけであげます。

発端はこれ↓


よりまともなゲームツール制作で手段を模索していたらたまたまPS4でアスタブリードと言う作品を出していた同人サークルさんが
ゲームエンジンを自作していると日記であったので思い切ってツイッターで聞いてみました。
全く見ず知らずの方でもすぐにコンタクトをとれるのはこの時代のいいところでは有ります。

その方は Qt と言うオープンソースのGUI Frameworkを使用して作成していたということだったので試しに自分のPCで環境構築をしてみました。
テンプレートプログラムを実行するだけでも思った以上に手間取ったので此処に今回テンプレートプロジェクトを生成して動かすまでの手順をメモしておく。

(64bit windws7での環境構築になります。)
なお今回、VisualStudio2013 Community 64bit版で動かすこと前提なので、Express editionではまず不可能だと思っておいて下さい。(インストールするVisualStudioのAddinがExpress editionでは未対応なので。)
また、インストールするのは
・Qt5 (Qt4はまた色々手順が異なる模様)
・Qt VisualStudio Add-in (VisualStudioでQtプロジェクトの作成が可能になる。下記のQtCreatorでも作れるがデバッガの設定など不便が多いのでこれを使う。:使い慣れたIDEが一番だしね。)
・QtCreator (Formのデザインをするのに必須。ないと話にならない。)
だったと思う。

1 まず此処でオンラインインストーラーとQt5用の VisualStudio Add inを落とす。
http://www.sra.co.jp/qt/download/postdownloadlgpl.html
※64bitOSでも32bit版をダウンロードします。

そしたらオンラインインストーラを立ててダウンロードするものを選択させられるのでQt5の最新版とQtCreator(強制なのでチェックとか無い)、
MinGW(コンパイラ。VisualStudioがあればそっちのコンパイラを使うので不要かも)
またGitか何かのログインフォームみたいなものが出るけど、今回個人使用が目的なので何も入力せずに次へ進む。
Addinはインストーラーに沿ってインストールするだけなので略

インストールが終わったらQtCreatorを起動して(多分最初から日本語化されているはず)
新しいプロジェクトでQt Quick アプリケーションを選択

色々設定項目があるけどそのまま作成。
作成したらQtCreatorの左下にある緑の右三角を実行して動くか確認。
うごいたら取り敢えずQtのインストールは成功。
※QtCreatorで開発は出来る事はできるが、デバッガは自分で用意しなければならず色々不便なのでVisualStudioを使うことにしています。


2 Qt visualstudio add in
インストールは前回一緒にやったので略。
まずはVisualStudioを起動してメニューにQtの項目が追加されているか確認。
あったらインストールは成功。
そのメニュー[Qt][QtOption]から[qmakeファイルを含むQtのbinフォルダがある場所]を指定。
これをしないとプロジェクト作成時VisualStudioが [unable to find Qt build!]とエラーをゲロる。
参考までに自分は(C:\Qt\5.4\msvc2013_64)を指定

3 次にプロジェクトを作成。作成するのはQt Quick~~ というやつ。(ここからさらに手間がかかる。)
作成したらそのまま実行。そしたらエラー
error LNK1112 モジュールのコンピュータの種類x86は対象コンピュータの種類x64と競合しています
と出るので
[プロパティ][リンカ][詳細の設定][対象コンピュータ]の[ソリューションプラットフォーム]を見てwin32か確認。
なっていたら
・[ビルド][構成マネージャ]
・[プラットフォーム][新規作成]
・[新しいプロジェクト][プラットフォーム]
・[新しいプラットフォームx64設定コピー元win32]にする
・[構成マネージャ][プラットフォーム]でx64設定
・[ツールバー][ソリューションプラットフォーム]でx64に設定
・[プロジェクト][プロパティ]
・[リンカ][詳細設定][対象コンピュータ]
・対象コンピュータをmachinex64に設定

通常は[ツールバー][ソリューションプラットフォーム]選択でx64/win32切替
LNK1112が発生したら
・ツールバーのソリューションプラットフォーム
・構成マネージャーのプラットフォーム
・リンカの対象コンピュータ
以上の不一致を確認して修正。

4 まだ終わらないプロジェクトの修正
次に使用するQtのバージョンをプロジェクトまたはソリューションに設定する(インストールしたバージョンと使用するバージョンが一致しないとエラー履くらしいので注意。オープンソースらしく、仕様がコロコロ変わるようなので更に注意)
LNK errorを修正し実行すると
[Can't find the Qt version that's associated~~]
とか出る。
要するにどのQtのバージョン使えばいいんスカ?ということなので設定。
方法は2種類。目的に合わせて調整(複数のQt versionを使いたいならプロジェクトの方に設定するのかな?)

・ソリューションからの設定
  -[ソリューション][右クリックメニュー][change solutions Qt version]
  -[set solutions Qt versionウィンドウ]からインストールしたQtのバージョンを選択
・プロジェクトからの場合
  -[プロジェクト][右クリックメニュー][Qt project settings]
  -[propatyタブ][version]にQt versionを設定

多分これで動く。

ソリューションの構成を見るとどうやらフォームのデザインはCtCreatorで行う模様。
-コードはVSで作成し
-GUI配置はQtCreatorのデザイナーで作成
が基本の流れかな?
取り敢えず次はQt4でDirectXを使用するサンプルを入手したのでQt5ではどう修正するか模索。
4~5への仕様変更のため中身が全く違うので手探りで。
今週中にはある程度結果出したい。
あとOpenGLとの連携も知っておきたい。
以上。

追記:IncludeとLibの設定を忘れずに・・・
エナジードリンクがぶ飲みしながら日曜の深夜(日付的に月曜)に作成しました。
最後に編集したユーザー TOMY on 2015年5月18日(月) 02:36 [ 編集 1 回目 ]

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前

Re: Qt5環境構築メモ

投稿記事 by h2so5 » 10年前

Qtは毎月勉強会とかあるので参加してみるのもいいかもしれないですよ。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: Qt5環境構築メモ

投稿記事 by softya(ソフト屋) » 10年前

QtにこだわらなくてもMFCでも出来ますよ。
MFCとOpenGLならいくつか記事が検索できます。
※ MFCはVisualStudio2013 Commnityで利用可能。

それとDXライブラリとWin32APIでメニューとダイアログ出すだけでもツール作れると思います。
前の日記にも書きましたが、不必要にどんどん難しい方向に流れていっている気がしてなりません。
一番やりたい事をやりましょ。ゲームではなく、ツールを作るのが主目的なら止めませんよ。

ISLe
記事: 2650
登録日時: 14年前

Re: Qt5環境構築メモ

投稿記事 by ISLe » 10年前

Qtはライセンスがややこしいのが難点ですかね。
私的利用のレベルであれば例えGPLでもまったく問題ないわけですが。

メインの描画ウィンドウとコンパネウィンドウがひとつの実行形式である必然性もないですし。

アバター
TOMY
記事: 53
登録日時: 13年前
住所: 愛知県
連絡を取る:

Re: Qt5環境構築メモ

投稿記事 by TOMY » 10年前

勉強会は・・・多分いまのお仕事とかで行ける隙がないかもしれません。あと場所にもよりますね。東京とかだとまず無理だし・・・<h2so5さん
MFCは既に試しました。それでもいいかなとは思ったのですが、どうせなら色々な手段を模索してみたかったのと、自身のスキルアップも兼ねてあえて難しそうだけど、作れる幅の広いQtに挑んでみました。確かにゲームは作りたいですが今はまず、ツールの自作がある程度できるようになることを主目的にしています。ある程度Qtを理解できればMFCの勉強も軽くしていきたいなと思っています。<softyaさん
今回は学習目的と、自分か(今は全くいないけど)身内だけで使うような物を作る目的なのでオープンソースでも問題無いと判断しました。何れ試作したものを後悔する際にはここの掲示板で判断を仰ごうかと思います。(一応自分でも調べますがこの手の問題は自分一人だけで判断するのは危険かもしれないので。)<ISLeさん
最後に編集したユーザー TOMY on 2015年5月18日(月) 19:24 [ 編集 1 回目 ]

ISLe
記事: 2650
登録日時: 14年前

Re: Qt5環境構築メモ

投稿記事 by ISLe » 10年前

将来不特定多数に向けて公開する予定があるのなら、後の祭りとならないために現時点でライセンスを理解しておくべきでは。

アバター
TOMY
記事: 53
登録日時: 13年前
住所: 愛知県
連絡を取る:

Re: Qt5環境構築メモ

投稿記事 by TOMY » 10年前

分かりました。とれるかどうかわかりませんが時間が開いた時にちょくちょくライセンスについて調べておきます。<ISLeさん

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前

Re: Qt5環境構築メモ

投稿記事 by h2so5 » 10年前

そもそもQtはLGPLを選択できるので、スタティックリンクしなければプログラムのライセンスに制約はないんですが。

ISLe
記事: 2650
登録日時: 14年前

Re: Qt5環境構築メモ

投稿記事 by ISLe » 10年前

QtをLGPLで利用したプログラムは、Qtを利用しない権利を第三者に保証する義務があります。
LGPLを採用したライブラリを“動的・静的に関わらず”リンクしたプログラムは新たにリバースエンジニアリングを禁止してはいけませんし、そういった条項を含むライセンスを継承することもできません。
静的リンクした場合は、そのプログラムのソースコードあるいはオブジェクトコードの配布に制限を課してはいけないという条件が“加わります”。
静的リンクした場合は第三者が権利を行使できるよう“積極的に”務める義務が発生するのであって、静的リンクしなくても制約が無くなったりはしません。
最後に編集したユーザー ISLe on 2015年5月19日(火) 16:46 [ 編集 1 回目 ]

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前

Re: Qt5環境構築メモ

投稿記事 by h2so5 » 10年前

失礼、制約がないというのは語弊がありました。すみません。
何かGPLを適用してオープンソースにしないといけない前提で話が進んでいるような気がしたので、そういう制約はないという話をしたかっただけです。