前言
CentOS7.5生成动态链接库.so文件,且编译环境为c99
一、写好原始.c文件以及头文件
二、修改.c文件
1.在声明的接口函数前,添加代码: “__attribute ((visibility(“default”)))”
三、在头文件中,添加以下语句
1.在头文件顶部,添加:
#ifndef _ADD_H
#define _ADD_H
注意:define后的名称的命名,是根据实际头文件名进行设置
2.中间为结构体声明、函数声明
3.在头文件底部,添加:
#endif
四、编译
gcc -std=c99 -shared -fPIC -o add.so -fvisibility=hidden add.c -lm
需要了解的是,在linux下,源文件中的所有函数都有一个默认的visibility属性为public,在编译命令中加入-fvisibility=hidden参数,会将所有默认的public的属性变为hidden。此时,如果对函数设置__attribute__ ((visibility(“default”)))参数,使特定的函数仍然按默