- --export-dynamic or -Bdynamic - add all symbols to
the dynamic symbol table.
Add symbols needed by the dynamic object to the dynamic symbol
table - --version-script
SOMENAME {
global:
foo;
bar;
local:
*;
};
That tells the linker that 'foo' and 'bar' are to be exported
and anything else not. I usually use the name of the library
for 'SOMENAME', but you can get a lot more fancy when you need
to support several versions of your library. You can use wild-
cards in the names of the variables, so e.g. 'foo_*' would mean
all symbols with names starting with 'foo_'. The '*' in local
simply means all symbols not yet set to global.
例として、ライブラリの外に公開するシンボルを制限する
Version Script
__asm__(".symver old_foo1,foo@VERS_1.2"); - --dynamic-list
a script which simply contains:
{foo;};
- objdump --dynamic-syms
- ファイルの動的なシンボルテーブルエントリを表示する。これはある種の共有ライブラリのように、動的なオブジェクトの場合にのみ意味を持つ。これは nm プログラムに -D (--dynamic) オプションを指定した場合に得られる情報とほぼ同じ。
Why is the new C++ visibility support so useful?
0 件のコメント:
コメントを投稿