【libtcc】 tcc (Tiny C Compiler)をwindowsにインストール

ときどき、Pythonで大量のデータを処理するので、高速化したい関数だけCで書こうかしらん、という野望。

tcc (Tiny C Compiler)

via 404 Blog Not Found:C – は「LLですが、なにか?」

tccは高速でコンパクトなC言語のコンパイラ。他の言語から、C言語のソースプログラムを文字列として渡して、機械語へ高速に変換、実行することもできます。

  • Cinpy – C in Python
    こちらに そのものズバリなモジュールが存在しました。が、うちの環境だと何故かうまく動かないので、自分でラッパーを書くことに。


まずはtccをインストールする手順のメモ。

Windows用バイナリアーカイブも配布されているのですが、残念ながらlibtcc.dllが同梱されてません。
ネットで探すと、何箇所かでバイナリが配布されてるみたいなのですが、今回は自分でビルドすることに。

tccのインストール

  • まずはtccのソースアーカイブをダウンロード
    tcc (Tiny C Compiler)

    今回は tcc-0.9.25.tar.bz2

  • tccをコンパイルするのにCコンパイラ(MinGW/msys)が必要です
    MinGW猫科研究所パック
    今回はこちらで以前ダウンロードしたものを使用。
    パスを通すなど  リンク先の解説を読みつつ適当にインストール。
  • msys/home/username/以下にtccのソースを展開
  • 【お好みで】configureを修正
    インストール先を変更したいときは
    237行 prefix=”C:/Program File/~”を、インストール先フォルダ名に変更

    (パスに空白が入ってるのが厭なので 自分は変更しました)

  • msysを起動。プロンプトで
    “cd tcc~(ソースを展開したフォルダ)
    ./configure
    make
    make install

libtcc.dllを作成

デフォルトではlibtcc.dllが作成されないので、こちらのページを参考にしてビルドいます。

getdll.batというファイルをソースフォルダに作成。中身は

gcc -O3 -shared -Wall -Wl,--export-all-symbols -mpreferred-stack-boundary=2 -march=i386 -falign-functions=0 -fno-strict-aliasing -DTCC_TARGET_PE -DLIBTCC -o libtcc.dll tcc.c

msysからgetdll.batを実行。警告がいっぱい出ますが、今回は無視の方向で。。。


以下のコマンドを実行して、定義ファイルlibtcc.defを作成

tiny_impdef libtcc.dll
  • libtccフォルダ
    • libtcc.dllは(configureで指定した) tcc.exeがインストールされたフォルダへコピー。(でフォルトではc:\Program Files\tcc)
  • libtcc.hはincludeフォルダへ
  • libtcc.defはlibフォルダへ

  • tccにパスを通す
    これで tccのインストールは終了。

次回は Pythonとの連携作業に移ります

コメントを残す

メールアドレスが公開されることはありません。