Perlテックブログ

ITエンジニアの成長意欲を刺激する技術考察、モジュール開発の日記。Perlイベントや国内や海外のPerlの記事の紹介。

コンパイラオプションとリンカオプション | SPVM開発日記

Perlには、ExtUtils::CBuilderというクラスプラットフォームで、C/C++ソースコードコンパイルと共有ライブラリ作成を助けてくれるモジュールがある。

SPVMは、内部的にこのモジュールを利用して、コンパイルと共有ライブラリの作成を行っている。

SPVMのひとつの目標はC/C++のライブラリ(ソースコードから and .soを呼び出す)のバインディングを簡単に行えることだ。

このためには、gccのオプションを柔軟に設定必要がある。たとえば、C++の場合は、コンパイラgccではなくって、g++になる。これを簡単に変えるためのモジュール SPVM::Build::Configを作成中。

# コンパイラの設定
$build_config->set_cc('g++');

#リンカの設定
$build_config->set_ld('g++');

# ヘッダのインクルードパスの追加
$build_config->add_ccflags('-I/usr/foo/lib');

みたいなのを簡単に書けるようにする。ちょうど、ExtUtils::MakeMakerのオプションと互換性を持たせるようにして設計。