LoginSignup
2
3

More than 3 years have passed since last update.

OSX(El Capitan)で.aなライブラリから.dylibなライブラリを作るには

Last updated at Posted at 2016-07-05

背景

Python、Julia、Rustなどでは、共有ライブラリは使えるが、
.aなアーカイブ形式のライブラリだとそのままでは利用できない。

アーカイブ形式なライブラリを共有ライブラリに変換できれば、これらの
言語から利用可能となる。

.dylib化する

/usr/bin/libtoolコマンド、GNUのじゃない、純正のコマンドでの
やり方は以下

libtool -dynamic -multiply_defined suppress -o libmruby.dylib mruby/build/host/lib/libmruby.a -undefined dynamic_lookup -macosx_version_min 10.11

この例ではmrubyをアーカイブ形式(.a)から共有ライブラリ(.dylib)にした。

rpathがついてるライブラリをリンクしてる場合

他の依存ライブラリをリンクに加えることも可能。しかし、加えてライブラリが
rpath指定を含んでいる場合、どうするのが一番いいのか不明だったが、install_name_toolでrpathを上書きして、絶対パスでの指定にできた。

注意

あんまり、バイナリアンじゃないので、この辺り明るくないので、
たまたま、動いたるだけかも。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3