私はMRI RubyのICUバインディングに取り組んでいます。設定はOS Xでスムーズに実行されますが、Travis(Ubuntu 12.04とgcc 4.8+)では悲惨な結果に終わります。ICUは `-fPIC`でコンパイルされていても、MRIで静的に構築することはできません
ビルドファイルは、ICUを静的ライブラリにダウンロード、抽出、コンパイルし、共有オブジェクトにグルーコードでリンクします。スムーズになっているはずですが、毎回リンクエラーがポップアップします。
linking shared-object icu/icu.so relocation R_X86_64_32S against `.rodata._ZL11_uErrorName' can not be used when making a shared object; recompile with -fPIC` was found
Rubygemは、コンフィギュレーション・ファイルを構築: https://github.com/fantasticfears/icu4r/blob/master/ext/icu/extconf.rb#L88-L89
私は--enable-static --disable-shared --disable-renaming
と試みたが、それは動作しません。 --enable-static --disable-renaming
でビルドすると動作しますが、実際のユーザーがロードするときにgemが失敗します。それは私のマシンでルビー宝石のために失敗することさえあります。私はrake
によってそれを構築することができますが。