可以通过以下步骤在 Linux 上为静态库导出函数添加前缀 'xixi':

  1. 编译静态库时,在编译参数中添加 -fvisibility=hidden 选项,将所有函数隐藏起来。

  2. 在需要导出的函数前面添加 __attribute__((visibility('default'))) 标记,将其标记为导出函数。

  3. 在函数名前添加前缀 '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;
}
Linux 静态库导出函数添加前缀:xixi

原文地址: https://www.cveoy.top/t/topic/nV5C 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录