スポンサーサイト

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

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

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

2015年11月23日(月)23時23分

Mingw-w64

前回「Code::Blocks をポータブルに使う(MinGW32 編)」の続きで、今回は MinGW の64ビット版を導入します。
その他の作業については「CodeBlocks」タグから一覧可能です。

「SEH」か「SJLJ」か

64ビット版では、まず最初に使用するスレッディングモデルを選ぶことになります。
選択肢は「SEH か SJLJ か」と「threads-win32 か threads-posix か」の組み合わせで、計4種類です。
このうち「SEH か SJLJ か」については、「SEH」の方が実行速度が速いということで、特に理由がない限りは「SEH」でよさそうです。

「threads-win32」か「threads-posix」か

問題は「threads-win32」か「threads-posix」かで、「threads-posix」は「C++11」のスレッド機能が使えるようになっているため移植性が高いのですが、ネイティブ実装である「threads-win32」に比べて速度に劣ります。
つまり、速度重視なら「threads-win32」、クロスプラットフォーム重視なら「threads-posix」、と言うことです。
しかし、「threads-posix」で生成されたバイナリは、実行時に「コンピューターに libwinpthread-1.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。」が出ます。

libwinpthread-1.dll エラー

これを回避するには「libwinpthread-1.dll」を添付するか、それをスタティック(静的)リンクにする必要があるのですが、後者の場合は Windows 専用の処理が必要になるらしいのです(http://www.up-cat.net/%BA%A3%B9%B9MinGW+2009.06%283%29+MinGW.html)。
結果として、せっかくの移植性という魅力は半減しますし、そもそも今回は wxWidgets を使うための環境構築であり、wxWidgets には「wxThread」なるクロスプラットフォームなマルチスレッド用の仕組みがあるようなので、必要ならこれを使うという手も考えられます。
ということで、今回は「threads-win32」を選択することとしました。
まあ、どうしても「threads-posix」が必要ということになっても、フォルダを丸ごと差し替えるだけで変更可能であるため、それほど悩むようなことでもないのですが。

ダウンロード

方針が決まったところで「http://sourceforge.net/projects/mingw-w64/」へ行き、必要ファイルをダウンロードします。
Mingw-w64 の2015年11月時点での最新版は「5.2.0」のようです。
ということで、上部メニューの「Files」から「Home → Toolchains targetting Win64 → Personal Builds → mingw-builds → 5.2.0 → threads-win32 → seh」と辿り、「x86_64-5.2.0-release-win32-seh-rt_v4-rev0.7z」をダウンロードしました。
これを解凍(展開)し、「D:\CodeBlocks\Compilers\MinGW\64」に置きます(前回までで作った Code::Blocks フォルダが「D:\CodeBlocks\」である場合)。

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

Code::Blocks を「CbLauncher.exe」で起動し、メニューの「設定 → コンパイラー(C)」でコンパイラー設定ダイアログを呼び出し、「GNU GCC Compiler」を「コピー」して「GNU GCC Compiler 64」を作ります。
次に「ツールチェイン実行ファイル」タブの「コンパイラーのインストールディレクトリー」を「$(CodeBlocks)\Compilers\MinGW\64」に書き換えます。

コンパイラー設定(コンパイラーのインストールディレクトリー)

最後にその下の「プログラムファイル」の各項目を以下のように書き換えて「OK」すると導入完了です。

  • Cコンパイラー:gcc.exe
  • C++コンパイラー:g++.exe
  • ダイナミックライブラリーのリンカー:g++.exe
  • スタティックライブラリーのリンカー:ar.exe

コンパイラー設定(プログラムファイル)

その他

その後、動作確認の「Hello world!」やスタティック(静的)リンクにする方法は、前回「Code::Blocks をポータブルに使う(MinGW32 編)」と同じです(「32」を「64」に読み替え)。
次回はいよいよ wxWidgets の導入、のつもりでしたが、せっかくなのでその前に Clang も使えるようにします。
その他の作業については「CodeBlocks」タグから一覧可能です。

関連記事

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

スポンサーサイト

コメントの投稿

非公開コメント

最新記事
最新コメント
Amazonおまかせリンク
カテゴリ
タグクラウド
Amazonお買い得ウィジェット
カレンダー
07 | 2017/08 | 09
- - 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拍手ランキング
ユーザータグ

音楽管理(66)
ポータブル(57)
ソフト紹介(44)
プログラミング(42)
音声技術(41)
自作ソフト(35)
サイト運営(32)
FC2(31)
ブログ(30)
iTunes(27)
Windows(25)
LISMO(24)
音声合成(23)
音声認識(22)
x-アプリ(22)
電子ブック(22)
eラーニング(20)
バックアップ(19)
語学学習(19)
foobar2000(18)
ソースコード(18)
WindowsLiveWriter(15)
画像管理(15)
C++(14)
アフィリエイト(10)
DnspTools(10)
fi-6130(9)
FLAC(9)
JavaScript(9)
ウォークマン(9)
英語音読学習計画(8)
Gracenote(8)
Prolog(8)
ベクター(8)
雑記(8)
CodeBlocks(7)
SyntaxHighlighter(7)
TraConv(7)
spcbght(7)
wxWidgets(7)
VirtualBox(6)
W63CA(6)
DCP-J552N(6)
WinRT(6)
WindowsLiveMesh(6)
iGoinLM(6)
英語発音矯正実験(6)
ExactAudioCopy(6)
MP3Gain(6)
LAME(5)
音楽技術(5)
Mery(5)
楽器演奏(5)
GalateaTalk(4)
nLite(4)
WindowsLiveSkyDrive(4)
ホームページ(4)
GalateaProject(4)
MIDI(4)
LLVM(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アクセスランキング
最新トラックバック
アクセスランキング
[ジャンルランキング]
コンピュータ
124位
アクセスランキングを見る>>

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