スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【同じタグを付けた記事の一覧】

Code::Blocks をポータブルに使う(MinGW32 編)

2015年11月01日(日)02時06分

MinGW

前回「Code::Blocks をポータブルに使う(セットアップ編)」の続きです。
wxWidgets で GUI を作るために Code::Blocks をセットアップしましたが、これだけでは開発できませんので、今回はコンパイラとして MinGW を導入します。
その他の作業については「CodeBlocks」タグから一覧可能です。

MinGW のインストーラ

MinGW は必要ファイルを個別にダウンロードしてセットアップすることもできますが、面倒なので今回はインストーラを使いました。
インストーラとはいうものの、自分の確認した限りでは環境変数やレジストリ等に何かの変更を加えるということもなく、スタートメニューとデスクトップアイコンの生成にさえチェックしなければ、実質的には単なるダウンローダのようです。

MinGW をセットアップ

インストーラは Downloads リンクのトップに置いてある「mingw-get-setup.exe」です。
これをダウンロードして実行し、表示された確認画面で「Install」を押すと以下の設定ウィンドウが出ます。

MinGW Installation Manager Setup Tool

この MinGW はポータブルな Code::Blocks と共にポータブルに使う予定ですので、「Installation Directory」は標準の「C:\MinGW」から「D:\CodeBlocks\Compilers\MinGW\32」に変更しました。
同様の理由で「just for me」にチェックし、「in the start menu」「on the desktop」のチェックは外します。
なお、「32」フォルダとしてあるのは、次に「64」も導入しようと思っているからです。

MinGW Installation Manager Setup Tool

設定後「Continue」するとカタログ情報が更新され、100%になった時点で再び「Continue」すると、以下のパッケージ選択画面になります。

MinGW Installation Manager

とりあえず C/C++ の開発さえできればいいので、今回は「Basic Setup」の「mingw32-base」と「mingw32-gcc-g++」の二つのみチェック(Mark for Installation)しました。

MinGW Installation Manager

その後、メニューの「Installation → Apply Changes」し、「Apply」するとパッケージのダウンロードおよび展開が行われます。

Code::Blocks のコンパイラー設定

MinGW のセットアップが終わったら Code::Blocks の設定です。
くどいようですが Code::Blocks をポータブルで使うためには「CbLauncher.exe」で起動します。
メニューの「設定 → コンパイラー(C)」でコンパイラー設定ダイアログを呼び出し、「GNU GCC Compiler」を「コピー」して「GNU GCC Compiler 32」を作りました。
元からある「GNU GCC Compiler」をそのまま使わなかったのは、「GNU GCC Compiler 64」も作る予定であるため、それに合わせただけです。
まずは新設した「GNU GCC Compiler 32」を「デフォルトに設定」します。
次に「ツールチェイン実行ファイル」タブの「コンパイラーのインストールディレクトリー」を「D:\CodeBlocks\Compilers\MinGW\32」に書き換えたのですが、このときなぜかパス文字列を直接タイプすると失敗し、「…」でファイル選択ダイアログを出し、そこから指定する必要がありました。
うまくいかない場合は試してみてください。

コンパイラー設定(絶対パス)

なお、下手にフォルダ名を変えず、「MinGW」のままで Code::Blocks のルートフォルダに置いておけば、「自動検出」もできます。

コンパイラの相対パス指定

上記では「コンパイラーのインストールディレクトリー」を絶対パスで指定しましたが、これではドライブレター等が変わるたびに再設定が必要となり、ポータブルで使う場合には不便です。
これを解決するには $(CodeBlocks) 変数を使います。
$(CodeBlocks) は実行時に Code::Blocks の起動パスに展開される変数です。
これを使うことで、起動パスを起点とした相対パス指定ができます。
ただし今回構築した環境では「$(CodeBlocks)\Compilers\MinGW\32」になるので、単なる絶対パスなのですが。

コンパイラー設定(相対パス)

しかし例えば USB メモリーのルートに直接「CodeBlocks」と「MinGW」のフォルダが置いてある場合は、「..」で一つ上の階層に移動できますので、「$(CodeBlocks)\..\MinGW」のように指定できます。

Hello world!

これで C/C++ での開発が可能になったはずなので、まずは定番の「Hello world!」してみました。
Code::Blocks を起動し、メニューの「ファイル → 新規 → プロジェクト」で「Console application」を「Go」します。

テンプレートから新規作成

最初の確認画面ですが、特に何度も見る理由はなさそうだったので、「このページを次回スキップ」にチェックして「次へ」しました。

Welcome to the new console application wizard!

次は使用言語の選択ですが、ただのテストであるため初期設定の「C++」のまま「次へ」。

Please select the language you want to use.

「プロジェクトタイトル」は「Test_MinGW32」、「プロジェクトを作成するフォルダー」はポータブル運用することを踏まえ、「CodeBlocks」フォルダ内に「Projects」を作り、そこにまとめることにします。
なお「Projects」フォルダはあらかじめ作っておく必要はなく、なければ Code::Blocks によって生成されます。

新しいプロジェクトのタイトルを入力してください。

コンパイラーの選択画面では、今回新設した「GNU GCC Compiler 32」が設定されていることを確認し、「完了」です。

Please select the compiler to use and which configurations you want enabled in your project.

ウィザードで生成されたプロジェクトには、初期設定で「Hello world!」を表示するコードが書き込まれています。
そのため、特に何も追加せずとも、メニューの「ビルド → ビルドして実行」すれば「Hello world!」されます。

Hello world!

スタティック(静的)リンク

ちなみに上記手順で生成された EXE ファイルを単独で実行すると「コンピューターに libgcc_s_dw2-1.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。」というシステムエラーが出て失敗します。

システムエラー

これは C/C++ のランタイムが標準ではダイナミック(動的)リンクされるためです。
解決策は二つあります。
一つは エラーで表示される全ての DLL をパスの通った場所に置くことで、もう一つはスタティック(静的)リンクにしてしまうことです。
スタティックリンクにするには、コンパイラー設定の「リンカ設定」タブで、「その他のリンカーオプション」に「-static-libgcc」と「-static-libstdc++」を追加します。

スタティックリンク設定

上記の設定項目は「プロジェクト → ビルドオプション」と「設定 → コンパイラー」の二か所に存在します。
前者はプロジェクトごとに静的と動的を使い分ける場合で、後者は「スタティックリンクでしか作らない」という場合です。
なお設定を変えた場合には「ビルド → リビルド」で EXE ファイルを作り直します。

GNU GCC Compiler 64

ということで、次は「Code::Blocks をポータブルに使う(MinGW64 編)」で64ビット版を追加します。
その他の作業については「CodeBlocks」タグから一覧可能です。

関連記事

【同じタグを付けた記事の一覧】
プログラミング ポータブル C++ CodeBlocks wxWidgets

スポンサーサイト

コメントの投稿

非公開コメント

最新記事
最新コメント
Amazonおまかせリンク
カテゴリ
タグクラウド
Amazonお買い得ウィジェット
カレンダー
09 | 2017/03 | 10
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
月別アーカイブ
プロフィール

Author:電脳太助
Website:電脳スピーチ web

RSSリンクの表示
メールフォーム

名前:
メール:
件名:
本文:

サイト内検索
Ads by Google
FC2アクセスランキング
Ads by Google
FC2拍手ランキング
ユーザータグ

音楽管理(65)
ポータブル(57)
ソフト紹介(44)
プログラミング(42)
音声技術(41)
自作ソフト(34)
サイト運営(32)
FC2(31)
ブログ(30)
iTunes(26)
Windows(25)
LISMO(24)
音声合成(23)
音声認識(22)
x-アプリ(22)
電子ブック(22)
eラーニング(20)
バックアップ(19)
語学学習(19)
foobar2000(18)
ソースコード(17)
画像管理(15)
WindowsLiveWriter(15)
C++(14)
アフィリエイト(10)
DnspTools(10)
ウォークマン(9)
fi-6130(9)
FLAC(9)
Gracenote(8)
英語音読学習計画(8)
Prolog(8)
JavaScript(8)
ベクター(8)
雑記(8)
CodeBlocks(7)
SyntaxHighlighter(7)
TraConv(7)
wxWidgets(7)
spcbght(7)
DCP-J552N(6)
W63CA(6)
MP3Gain(6)
WinRT(6)
iGoinLM(6)
VirtualBox(6)
WindowsLiveMesh(6)
英語発音矯正実験(6)
ExactAudioCopy(6)
楽器演奏(5)
Mery(5)
LAME(5)
音楽技術(5)
GalateaProject(4)
LLVM(4)
nLite(4)
MIDI(4)
ホームページ(4)
WindowsLiveSkyDrive(4)
GalateaTalk(4)
PC-98(3)
カウンター(3)
AACGain(3)
iTCDini(3)
OverCutChecker(3)
拍手(3)
PK-513L(3)
UniversalExtractor(3)
アクセスランキング(3)
ImageCompositeEditor(2)
アクセス解析(2)
OCR(2)
qtaacenc(2)
資格試験(1)
AquesTalk(1)
AquesCmdDl(1)

FC2アクセスランキング
最新トラックバック
アクセスランキング
[ジャンルランキング]
コンピュータ
137位
アクセスランキングを見る>>

[サブジャンルランキング]
ソフトウェア
12位
アクセスランキングを見る>>
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。