Linux 静态库导出函数添加前缀:xixi
可以通过以下步骤在 Linux 上为静态库导出函数添加前缀 'xixi':
-
编译静态库时,在编译参数中添加
-fvisibility=hidden选项,将所有函数隐藏起来。 -
在需要导出的函数前面添加
__attribute__((visibility('default')))标记,将其标记为导出函数。 -
在函数名前添加前缀 'xixi'。
示例代码:
// mylib.h
#ifdef __cplusplus
extern "C" {
#endif
__attribute__((visibility("default"))) int xixi_add(int a, int b);
#ifdef __cplusplus
}
#endif
// mylib.c
#include "mylib.h"
int xixi_add(int a, int b)
{
return a + b;
}
编译静态库时需要添加参数 -fvisibility=hidden,示例命令:
gcc -fPIC -c mylib.c -o mylib.o
gcc -shared -fPIC -Wl,-soname,libmylib.so.1 -o libmylib.so.1.0.1 mylib.o -fvisibility=hidden
使用静态库时需要添加编译参数 -lmylib,示例命令:
gcc main.c -o main -L. -lmylib
在程序中使用函数时需要添加前缀 'xixi',示例代码:
#include "mylib.h"
#include <stdio.h>
int main()
{
int result = xixi_add(1, 2);
printf("result = %d\n", result);
return 0;
}
原文地址: https://www.cveoy.top/t/topic/nV5C 著作权归作者所有。请勿转载和采集!