22 lines
568 B
Markdown
22 lines
568 B
Markdown
|
# GCC 扩展 之 库导出符号可见性
|
||
|
|
||
|
通过以下方法可控制库将某些符号导出或隐藏:
|
||
|
|
||
|
```cpp
|
||
|
// 符号将被导出,动态库中的函数默认是可见的。
|
||
|
__attribute__ ((visibility("default")))
|
||
|
|
||
|
// 符号不会被放到动态符号表里,所以其它模块(可执行文件或者动态库)不可以通过符号表访问该方法。
|
||
|
__attribute__ ((visibility("hidden")))
|
||
|
```
|
||
|
|
||
|
示例如下:
|
||
|
|
||
|
```cpp
|
||
|
__attribute__ ((visibility("default"))) extern int ofmult(int a, int b, int x);
|
||
|
|
||
|
int ofmult(int a, int b, int x) {
|
||
|
return a*x+b;
|
||
|
}
|
||
|
```
|