N.Yamazaki's blog

主に音声合成について思ったことを書いてみようと思います。
<< AquesTalk2 Linuxを使ってみる - Linux の音声合成コンソールアプリ SayAqTk2 - | main | gcc 4.2.1 最適化オプションのバグ? >>
Mac 共有ライブラリの公開シンボルを制限する
共有ライブラリ、.so(またはFramework中のライブラリ実体)の公開する関数のシンボルを制限する方法について

まず、公開されているシンボルは次のコマンドで確認出来る。
$ nm -m ライブラリファイル

Export Fileの作成
エディタで公開する関数名を箇条書きに。このとき、Cの関数の場合は先頭にアンダーバーをつけることを忘れずに。
_foo
_boo
_poo

これを例えば、MyExport.defというファイルで保存しておく。
なお、行の先頭が#はコメント行になるとのこと(未確認)。

リンカフラグの設定
このファイル名を、リンクオプション(xcode、ターゲットの情報/ビルドタブ)の[書き出されたシンボルファイル]に指定する(上の例ではMyExport.def)。なお、パスが正しくないとビルド時にエラーがでる。

さらに、「他のリンカフラグ」に-Wl,-x を追加。
このオプションは、次を手動で実行するのと同じ。
$ strip -x ライブラリファイル

確認
出来上がったライブラリファイルのexportシンボルを確認。
Export Fileで指定したもの以外が消えてればOK。
ファイルサイズも若干小さくなっているはず。
$ nm -m ライブラリファイル


参考
Minimizing Your Exported Symbols (developer.apple.com)
| Mac OS X | 16:31 | comments(0) | - |
コメント
コメントする









PROFILE
Follow
CATEGORIES
LATEST ENTRIES
SEARCH THIS SITE
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
SONY MDR-CD900ST
SONY MDR-CD900ST (JUGEMレビュー »)

普段これで開発しています。
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND