3.Code Blocks on Debian

2018年2月21日

さていよいよCode Blocksを使ってのプログラミングです。ここでも私流が炸裂(さくれつ)です(笑)。

Code Blocksの準備

1)Code Blocksをインストールします。 wxAuiを使用しようとすれば Code Blocks 10.05 では一部未対応のため、しかたなくSVN 7789を使用していました。wxAuiを使うか使わないにかかわらず Code Blocks 12.11 以降ではどれでも良いと思います。(正直、差がない(笑)) Debian Stretchの場合 Ver 16.01がapt-get(aptitude)でインストールされます。(これで十分)

2)Code Blocks日本語化をインストールします。 以上です!!!

えっ!?っと思った方は利用経験者かな。実は私、Code Blocksの設定は一切しません

私の場合、様々なOSを使用します。wxWidgetsも複数のバージョンを使用します。いちいちCode Blocksの環境設定なんぞやってられません! なので、Code Blocksのグローバル変数などの環境設定は一切しません。(じゃあどこで設定するのかはこの後!)

さっそくプログラミング!

それでは新規プロジェクトを作ってみましょう。[ファイル]-[新規]-[プロジェクト…]-[wxWidgets project]と。
以下のようにウインドウが作成されれば終了です!終了ですので保存してCode::Blocksも終了させましょう!
この例では、「プロジェクトのタイトル」をSampleとしています。

*.cbp(ここではSample.cbp)ファイルをテキストエディタで編集!

Code Blocksでプログラミングする際に必要な設定は*.cbpファイルのみです。これ以外に一切ありません。 さすがはLinux由来だと思います。この1つのテキストファイルさえ理解すればあなたもプロフェッショナル!  しかも1つ作って置きさえすればあとはコピー&ペーストでOK! 見ていただければ一目瞭然。何も迷うものはないと思います。

 <Build>
   <Target title="debug">
     <Option >  … デバック用オブジェクトファイルの保存先と実行ファイル名
     <Compiler> … デバッグ専用のコンパイル設定 </Compiler>
     <Linker>  … デバッグ専用のリンカ設定 </Linker>
   </Target>
   <Target title="release">
     <Option >  … リリース用オブジェクトファイルの保存先と実行ファイル名
     <Compiler> … リリース専用のコンパイル設定 </Compiler>
     <Linker>  … リリース専用のリンカ設定 </Linker>
   </Target>
 </Build>
 <Compiler>  … デバッグ、リリース共通のコンパイル設定 </Compiler>
 <Linker>  … デバッグ、リリース共通のリンカ設定 </Linker>

*.cbp(ここではSample.cbp)ファイルの実例

以下は編集したものです。 補足するものがあるとすれば、「gtk2-unicode-debug-static-2.8」とか 「gtk2-unicode-release-static-2.8」がありますがこれは「wx-config」の本体です。「wx-config」がリンクファイルですので、 それではなく本体を呼び出しています。 なおかつこれらは実行ファイル(スクリプト)ですので前後に「`」がついています。

wxWidgets 2.8.12を使うということは、自作するプログラムもgnu++98の仕様に従うということになります。 また、「-D_WIN32_IE=0x0603」はLinux下では無視されます。(Windowsじゃないんでね。でも入れていおきます)

 <Build>
  <Target title="Debug_stretch_wx2_gcc6_i386">
    <Option output="bin/release/stretch_Sample_wx2_gcc6_i386_debug" prefix_auto="1" extension_auto="1" />
    <Option object_output="obj/debug_stretch_Sample_wx2_gcc6_i386/" />
    <Option type="0" />
    <Option compiler="gcc" />
    <Option projectLinkerOptionsRelation="2" />
    <Compiler>
      <Add option="-g" />
      <Add option="`/home/usr/application/stretch-i386/wx28_debug/lib/wx/config/gtk2-unicode-debug-static-2.8 --cflags`" />
      <Add directory="/home/usr/application/stretch-i386/wx28_debug/lib/wx/include/gtk2-unicode-debug-static-2.8" />
    </Compiler>
    <Linker>
      <Add option="`/home/usr/application/stretch-i386/wx28_debug/lib/wx/config/gtk2-unicode-debug-static-2.8 --libs std,aui`" />
    </Linker>
  </Target>
  <Target title="Release_stretch_wx2_gcc6_i386">
    <Option output="bin/release/stretch_Sample_wx2_gcc6_i386_release" prefix_auto="1" extension_auto="1" />
    <Option object_output="obj/release_stretch_Sample_wx2_gcc6_i386/" />
    <Option type="0" />
    <Option compiler="gcc" />
    <Option projectLinkerOptionsRelation="2" />
    <Compiler>
      <Add option="-O2" />
      <Add option="`/home/usr/application/stretch-i386/wx28_release/lib/wx/config/gtk2-unicode-release-static-2.8 --cflags`" />
      <Add directory="/home/usr/application/stretch-i386/wx28_release/lib/wx/include/gtk2-unicode-release-static-2.8" />
    </Compiler>
    <Linker>
      <Add option="-s" />
      <Add option="`/home/usr/application/stretch-i386/wx28_release/lib/wx/config/gtk2-unicode-release-static-2.8 --libs std,aui`" />
    </Linker>
  </Target>
 </Build>
 <Compiler>
  <Add option="-Wall" />
  <Add option="-std=gnu++98 -Wno-unused-local-typedefs -Wno-deprecated-declarations -D_WIN32_IE=0x0603" />
 </Compiler>

Code Blocksでコンパイルと実行

Sample.cbpファイルの編集が終わったら、再度Code Blocksを起動して、コンパイル!そして実行!