Skip to main content

ログ取得ツール (移転先予定地)

スタティックライブラリ←→シェアードライブラリ

*.aを*.soに変換する方法。


ld --whole-archive -shared -o libXXX.so libXXX.a

でどうにかなるらしい。ちょっとやってみたら大丈夫っぽかった。

# じゃあ今までつけてた-fPICって何だったんだろう…

逆に、*.soを*.aに変換するのに、


ar cru libXXX.a libXXX.so

ってのはアリなのかなぁ。こっちは試して(リンクしてみて)ないけど、アリであってほしい。

そうすると*.aと*.soの違いは何なのよって話になる。あー、フォーマットが違うのはわかってるよ。*.aは単に*.oのアーカイブだし、*.soは一種の実行ファイルみたいなもん(?)だけど、でも相互に変換できるものであるならば、*.soをstatic linkに使ったり、*.aをdynamic linkに使うことができても文句は言ってほしくなくて、ユーザにシームレスに見せろよって話になってしまう。