Page MenuHomePhabricator (Chris)

build.html
No OneTemporary

Authored By
Unknown
Size
11 KB
Referenced Files
None
Subscribers
None

build.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"><!-- InstanceBegin template="/Templates/soramimi.dwt" codeOutsideHTMLIsLocked="true" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="style/style.css" type="text/css" />
<!-- #BeginEditable "doctitle" -->
<title>How to build the Guitar</title>
<link rel="stylesheet" href="style/style.css">
<!-- #EndEditable -->
</head>
<body bgcolor="#f0f0f0" background="style/bg.gif">
<div id="body">
<div id="header">
<div style="float: left"><a href="https://soramimi.github.io/Guitar/"><img src="banner.png" width="443" height="48" alt="Guitar - the graphical git client"></a></div>
<div style="text-align: right;">under development</div>
<div style="clear: both;"></div>
</div>
<!-- #BeginEditable "content" -->
<p><a href="https://soramimi.github.io/Guitar/">Home</a></p>
<h1>Guitarをビルドする</h1>
<p>開発言語はC++、GUIフレームワークは Qt 5 を使用しています。</p>
<p>最初にコンパイラを準備します。</p>
<h4>Windows</h4>
<ul>
<li>Microsoft Visual C++ 2013 以降
<ul>
<li>無料のExpress版も使用可能です。その場合、「for Windows Desktop」と書かれているものをインストールします。</li>
</ul>
</li>
</ul>
<h4>macOS</h4>
<ul>
<li>Xcode</li>
</ul>
<h4>Linux</h4>
<ul>
<li>GCC</li>
</ul>
<p><a href="https://www.qt.io/download-open-source/#section-2">Qtのダウンロードサイト</a>からお使いのOSに合ったQt SDKをダウンロードし、インストールします。</p>
<h2>とりあえず</h2>
<p>Qtが初めての方のために、基本的な使い方を紹介します。Windows、macOS、Linuxのいずれでもほとんど同じです。</p>
<p>Qt Creator を起動します。</p>
<p><a href="qtcreator.png"><img src="qtcreator.png" width="540" height="342"></a></p>
<p>[新しいプロジェクト] ボタンを押し、 [Qt ウィジェットアプリケーション] を選択します。</p>
<p><a href="newproject.png"><img src="newproject.png" width="448" height="279" border="0"></a></p>
<p>[名前]の欄に“Test”、[パス]には、作業用フォルダの場所を入力します。</p>
<p><a href="qtwidgetapp.png"><img src="qtwidgetapp.png" width="467" height="234"></a></p>
<p>筆者の場合、都合により、複数のキットを使い分けていますが、初めての場合は、一つだけ表示されていると思います。使用するキットのチェックボックスをONにして、右上の [詳細] をクリックします。 [プロファイル] は必要ないので、チェックボックスをOFFにします。(ONのままでも実害はないので、そのままでもいいです)</p>
<p><a href="selectkit.png"><img src="selectkit.png" width="468" height="247"></a></p>
<p>生成されるクラス名を確認します。ここの設定はそのままで、次へ進みます。</p>
<p><a href="classinfo.png"><img src="classinfo.png" width="468" height="234"></a></p>
<p>プロジェクト作成の最終確認です。問題なければ [完了] ボタンを押します。</p>
<p><a href="final.png"><img src="final.png" width="468" height="234"></a></p>
<p>左下の三角ボタンを押すと、ビルドが開始し、成功したらプログラムが実行されます。</p>
<p><a href="firstapp.png"><img src="firstapp.png" width="541" height="342"></a></p>
<p>最初のアプリケーションが完成しました。</p>
<p><img src="blankapp.png" width="416" height="338"></p>
<h2>環境設定</h2>
<p>Qt Creator の設定を行います。[ツール] → [オプション] を選択すると、オプションダイアログが開きます。</p>
<p><a href="projectsettings1.png"><img src="projectsettings1.png" width="522" height="353"></a></p>
<p>デフォルト設定では、ファイル名は「lowercase」な名前になりますが、Guitarでは「UpperCamelCase」なファイル名を採用していますので、[ファイル名を小文字にする] というチェックボックスをOFFにします。</p>
<p><a href="projectsettings2.png"><img src="projectsettings2.png" width="522" height="353"></a></p>
<p>[ビルドと実行] の [一般] タブにある、 [既定のビルドディレクトリ] の設定を変更します。</p>
<p>Windowsの場合“../_build_%{CurrentProject:Name}”にします。これはグローバルの設定なので、変えたくない場合は、後でプロジェクトの設定で“../_build_Guitar”などにします。</p>
<p><a href="projectsettings3.png"><img src="projectsettings3.png" width="522" height="353"></a></p>
<p>LinuxやmacOSの場合、ビルドディレクトリは 「../_build_%{CurrentProject:Name}_%{CurrentBuild:Name}」がおすすめです。そのような設定にすると /home/<em>&lt;username&gt;</em>/develop/_build_Guitar_Release|Debug の様になります。</p>
<p><img src="projectsettings4.png" width="605" height="376"></p>
<p>一応、次のようなコーディングスタイルを採用しています。</p>
<ul>
<li> ハードタブ(半角4文字幅推奨)</li>
</ul>
<p>上に挙げたのは、グローバルの共通設定ですが、プロジェクト毎にも設定箇所があります。</p>
<p><img src="projectsettings5.png" width="540" height="342"></p>
<p>[エディタ]の設定、[コードスタイル]の設定を確認します。</p>
<h2>ソースコードを取得する</h2>
<p>作業用フォルダを作成します。各自好みの場所で構いません。筆者の場合、Windowsでは C:\develop 、Linuxでは /home/soramimi/develop としています。</p>
<p><img src="github.png" width="20" height="16" alt="guthub"><a href="https://github.com/soramimi/Guitar">https://github.com/soramimi/Guitar</a> にアクセスします。</p>
<p><img src="repo.png" width="995" height="168" class="border"></p>
<p>右にある[Clone or download]を押すと、ソースコードを取得するためのアドレスが表示されます。</p>
<p>HTTPSを使用する場合</p>
<pre>C:\develop&gt;git clone https://github.com/soramimi/Guitar.git
</pre>
<p>SSHを使用する場合</p>
<pre>C:\develop&gt;git clone git@github.com:soramimi/Guitar.git
</pre>
<h2>ビルドの準備</h2>
<p>バージョン情報やリソーススクリプトを自動生成するための prepare.rb というスクリプトファイルがあります。Qt Creator でプログラム本体をビルドする前に、このスクリプトを実行しておく必要があります。実行にはRubyが必要です。</p>
<pre>C:\develop\Guitar&gt;ruby prepare.rb</pre>
<p>以下のファイルが作成されます。</p>
<ul>
<li>version.c … バージョン情報ダイアログボックスで表示する値を定義します</li>
<li>win.rc … Windows用のバージョン情報を定義します</li>
<li>Info.plist … macOS用のバージョン情報を定義します</li>
</ul>
<h2>プロジェクトを開く</h2>
<p>Qt Creator の「ようこそ」の画面で、右上の[プロジェクトを開く]ボタンを押します。</p>
<p>クローンした場所にある Guitar.pro を開きます。 libgit2.pro というのは後述しますが、とりあえず関係ありません。</p>
<p><img src="openproject.png" width="852" height="434"></p>
<h3>ビルド</h3>
<p>Qt Creator の左にある三角ボタンを押すか、Ctrl+R(実行)を押すと、ビルドと実行が行われます。ビルドだけして、実行したくない場合は、Ctrl+Bを押します。デバッガ上で実行するには、デバッグ開始ボタンかF5キーを押します。</p>
<h4>失敗する場合</h4>
<p>よくあるのが、prepare.rbを実行し忘れて、 version.c が見つからないというエラー。前述した「ビルドの準備」の操作を行うと version.c が作成されます。自動では行われないので、手作業でやる必要があります。</p>
<h4>追加したソースがコンパイルされないとき</h4>
<p>version.c を生成した場合もそうですが、リポジトリから pull したら新しいファイルが追加されていたときや、新しいクラス(のファイル)を追加したとき、そのままビルドすると、増えたファイルがコンパイルされずに、いろいろ見つからないというエラーが出ることがあります。そんなときは、Qt Creator の [ビルド]→[qmake の実行] を行ってください。追加したファイルがビルドされない問題は、大抵これで解消されます。</p>
<p><img src="qmake.png" alt="qmakeの実行" width="365" height="152" class="border"></p>
<h2>libgit2対応</h2>
<p>アプリケーションとリンクして利用するための <a href="https://libgit2.github.com/">libgit2</a> というライブラリがあります。これを使ってみようと挑戦しましたが、libgit2でfetch/push/pullなどの通信を行う処理を実装する方法が分からず、挫折しました。一応プロジェクトファイル libgit2.pro は作ってありますので、ライブラリをビルドするだけなら可能です。</p>
<p>作業用フォルダ(例 C:\develop\)に移動します。</p>
<pre>C:\&gt;cd C:\develop</pre>
<p>クローンします。</p>
<pre>C:\develop&gt;git clone https://github.com/libgit2/libgit2.git</pre>
<p>Qt Creator から libgit2.pro を開きます。</p>
<p>ビルドディレクトリは、Windowsの場合 C:\develop\_build_libgit2 とします。</p>
<p><img src="libgit2build.png" width="363" height="181" class="border"></p>
<p>Ctrl+Bを押してビルドします。必要に応じて [デバッグ] と [リリース] を両方ビルドします。</p>
<p>この時点で、下記のようなフォルダ構成になっているものと想定します。</p>
<h4>Windowsの場合</h4>
<ul class="foldertree">
<li class="folder">C:\develop
<ul>
<li class="folder">_build_Guitar
<ul>
<li class="folder">debug</li>
<li class="folder">release</li>
</ul>
</li>
<li class="folder">_build_libgit2
<ul>
<li class="folder">debug</li>
<li class="folder">release </li>
</ul>
</li>
<li class="folder">Guitar</li>
<li class="folder">libgit2</li>
</ul>
</li>
</ul>
<h4>Linuxの場合</h4>
<ul class="foldertree">
<li class="folder">/home/&lt;<em>username&gt;</em>/develop
<ul>
<li class="folder">_build_Guitar_Debug</li>
<li class="folder">_build_Guitar_Release</li>
<li class="folder">_build_libgit2_Debug</li>
<li class="folder">_build_libgit2_Release</li>
<li class="folder">Guitar</li>
<li class="folder">libgit2</li>
</ul>
</li>
</ul>
<p>Guitar.pro を開くと、libgit2をリンクする設定がコメントアウトされています。</p>
<pre>#INCLUDEPATH += $$PWD/../libgit2/include
#win32:Debug:LIBS += $$PWD/../_build_libgit2/debug/libgit2.lib
#win32:Release:LIBS += $$PWD/../_build_libgit2/release/libgit2.lib
#unix:debug:LIBS += $$PWD/../_build_libgit2_Debug/liblibgit2.a
#unix:release:LIBS += $$PWD/../_build_libgit2_Release/liblibgit2.a </pre>
<p>これらのコメントを外して、[ビルド]→[qmake の実行]を行います。</p>
<p>Git.h を開き、USE_LIBGIT2 の定義を 1 にすると、libgit2対応に関するソースがコンパイルされるようになります。</p>
<p><img src="uselibgit2.png" width="870" height="523"></p>
<p>途中まで作って挫折したソースは LibGit2.cpp/hです。これらを Git.cpp の中から呼び出していますが、条件コンパイルで無効にしています。</p>
<!-- #EndEditable -->
<div id="footer">
<span id="copyright"></span>
</div>
</body>
<script type="text/javascript" src="common.js"></script>
<!-- InstanceEnd --></html>

File Metadata

Mime Type
text/html
Expires
Sun, Nov 15, 8:40 AM (1 d, 21 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
152204
Default Alt Text
build.html (11 KB)

Event Timeline