スポンサーサイト

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

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

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

2015年12月20日(日)20時05分

Clang

ここ数回にわたり、「Code::Blocks をポータブルに使う」ための環境構築を進めています(「CodeBlocks」タグから一覧可能)。
前回前々回でコンパイラとして MinGW を使えるようにしたわけですが、わざわざ「Compilers」という複数形名のフォルダを作っておきながら、中身は MinGW だけ、というのも寂しいため、もう一つ「Clang」も置くことにしました。

現状と完成図

現在までの時点で、フォルダ構成は以下のようになっています。

$(CodeBlocks) Compilers MinGW 32 MinGW 4.8.1」格納フォルダ
64 Mingw-w64 5.2.0」格納フォルダ

今回は上記に Clang の32ビットおよび64ビットのフォルダが追加され、以下のようになる予定です。

$(CodeBlocks) Compilers Clang 32 Clang(32) 3.7.0」格納フォルダ
64 Clang(64) 3.7.0」格納フォルダ
MinGW 32 MinGW 4.8.1」格納フォルダ
64 Mingw-w64 5.2.0」格納フォルダ

Clang フォルダの抽出

まずは「http://clang.llvm.org/」の Download ページから Windows 用のインストーラを入手します。
2015年12月時点での最新版は 3.7.0 ですので「LLVM-3.7.0-win32.exe」と「LLVM-3.7.0-win64.exe」をダウンロードしました。
これらはインストーラですので、ポータブルに使うためには中身を取り出す必要があるのですが、これが難しいのです。
インストーラ自体は「Universal Extractor」等の解凍ソフトで展開できる(参考「Universal Extractor でインストーラを解体する」)のですが、そのままではファイルが足りません。
普通にインストールした Clang フォルダと比較すると、例えば一番重要な「clang.exe」や「clang++.exe」が見つかりません。
これらは「msbuild-bin」フォルダに生成される「cl.exe」と同じものであり、インストール時にリネームコピーされているようです。
他にもそういうリネームコピーされるファイルがいくつかあり、さらには同一ファイルが見当たらない新規ファイルまであります。
つまり、インストール時に何かしらのファイル生成処理もなされているようです。
というようなことから、これは素直に普通にインストールし、インストーラが生成したフォルダをコピーするのがいいと思われます。
Visual C++ がインストールされていると、その設定を書き換えたりまするようなので、自分は仮想環境にインストールして抽出しました。

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

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

コンパイラーのインストールディレクトリー

また、その下にある「追加のパス」タブに「$(CodeBlocks)\Compilers\MinGW\32\bin」を「追加」しておきます。

追加のパス

さらに、「ディレクトリーの検索」タブの「コンパイラー」タブに以下の項目を「追加」します。

  • $(CodeBlocks)\compilers\mingw\32\lib\gcc\mingw32\4.8.1\include\c++
  • $(CodeBlocks)\compilers\mingw\32\lib\gcc\mingw32\4.8.1\include\c++\mingw32
  • $(CodeBlocks)\compilers\mingw\32\lib\gcc\mingw32\4.8.1\include\c++\backward
  • $(CodeBlocks)\compilers\mingw\32\lib\gcc\mingw32\4.8.1\include
  • $(CodeBlocks)\compilers\mingw\32\include
  • $(CodeBlocks)\compilers\mingw\32\lib\gcc\mingw32\4.8.1\include-fixed

コンパイラー

同じく「リンカ」タブに以下の項目を「追加」します。

  • $(CodeBlocks)\compilers\mingw\32\lib\gcc\mingw32\4.8.1
  • $(CodeBlocks)\compilers\mingw\32\lib\gcc
  • $(CodeBlocks)\compilers\mingw\32\mingw32\lib
  • $(CodeBlocks)\compilers\mingw\32\lib

リンカ

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

前半は32ビット版と同じで、ただ文字列中の「32」を「64」に置き換えるだけです。
後半で「ディレクトリーの検索」タブの「コンパイラー」タブに「追加」する項目が以下のように変更になります。

  • $(CodeBlocks)\Compilers\MinGW\64\lib\gcc\x86_64-w64-mingw32\5.2.0\include
  • $(CodeBlocks)\Compilers\MinGW\64\lib\gcc\x86_64-w64-mingw32\5.2.0\include-fixed
  • $(CodeBlocks)\Compilers\MinGW\64\x86_64-w64-mingw32\include
  • $(CodeBlocks)\Compilers\MinGW\64\x86_64-w64-mingw32\include\c++
  • $(CodeBlocks)\Compilers\MinGW\64\x86_64-w64-mingw32\include\c++\x86_64-w64-mingw32
  • $(CodeBlocks)\Compilers\MinGW\64\x86_64-w64-mingw32\include\c++\backward

また、「リンカ」タブに「追加」する項目も以下に変更になります。

  • $(CodeBlocks)\Compilers\MinGW\64\lib\gcc\x86_64-w64-mingw32\5.2.0
  • $(CodeBlocks)\Compilers\MinGW\64\lib\gcc
  • $(CodeBlocks)\Compilers\MinGW\64\x86_64-w64-mingw32\lib
  • $(CodeBlocks)\Compilers\MinGW\64\lib

Hello world!

動作確認の「Hello world!」やスタティック(静的)リンクにする方法は、以前に書いた「Code::Blocks をポータブルに使う(MinGW32 編)」の該当部分とほぼ同じです。

追加するパスの確認方法

上記で設定した「ディレクトリーの検索」タブの各項目は、今回使用した MinGW のバージョンに対応するものです。
つまり MinGW のバージョンが違えば設定する内容も変わります。
これらは MinGW(GCC)がソースコードをビルドする際に参照する各種のパスですから、GCC に「-v」オプション(詳細表示)を付けて、何か適当なソースコードをビルドさせれば、表示されるメッセージから取得することができます。
例えば「gcc -v test.c 2> test.txt」とすれば、生成された「test.txt」中の「#include <...> search starts here:」以下に、C ソースコードをビルドする際に必要なインクルードパスが確認可能です。
これは Clang をコマンドライン等から使用する際に、環境変数「C_INCLUDE_PATH」にセットすべき内容でもあります。
C++ ソースコードをビルドする際に必要なパス「CPLUS_INCLUDE_PATH」は「gcc -v test.cpp 2> test.txt」で取得します。
これにはおそらく「C_INCLUDE_PATH」も含まれていますので、たんに Code::Blocks に設定すべき内容が欲しいだけならこちらを確認するだけで十分なはずです。
また、「リンカ」タブに設定すべき内容は、C/C++ どちらのビルドメッセージからでも「LIBRARY_PATH」行以下に記載されています。
これはもちろん、Clang をコマンドライン等から使用する際に環境変数「LIBRARY_PATH」にセットするパス群です。

「threads-posix」と「-pthread」オプション

前回「Code::Blocks をポータブルに使う(MinGW64 編)」で、Mingw-w64 では「threads-win32」か「threads-posix」かを選択する必要があることを書きました。
もしここで「threads-posix」を選んでいた場合、64ビット版 Clang では「リンカ設定 → その他のリンカーオプション」で「-pthread」を指定しないとリンクエラーでビルドできません。
もちろんこのオプションをつけて生成した実行ファイルでは「コンピューターに libwinpthread-1.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。」が出ますので、その対策も必要です(前回参照)。

libwinpthread-1.dll エラー

wxWidgets

ということで、次回はやっと本来の目的である wxWidgets の準備に取り掛かろうと思います。
その他の作業については「CodeBlocks」タグから一覧可能です。

関連記事

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

スポンサーサイト

コメントの投稿

非公開コメント

最新記事
最新コメント
Amazonおまかせリンク
カテゴリ
タグクラウド
Amazonお買い得ウィジェット
カレンダー
09 | 2017/10 | 11
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アクセスランキング
最新トラックバック
アクセスランキング
[ジャンルランキング]
コンピュータ
161位
アクセスランキングを見る>>

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