NotePublic/Software/Development/Language/C/GCC/GCC_扩展_库导出符号可见性.md

568 B

GCC 扩展 之 库导出符号可见性

通过以下方法可控制库将某些符号导出或隐藏:

// 符号将被导出,动态库中的函数默认是可见的。
__attribute__ ((visibility("default")))

// 符号不会被放到动态符号表里,所以其它模块(可执行文件或者动态库)不可以通过符号表访问该方法。
__attribute__ ((visibility("hidden")))

示例如下:

__attribute__ ((visibility("default"))) extern int ofmult(int a, int b, int x);

int ofmult(int a, int b, int x) {
    return a*x+b;
}