linux动态链接库的使用
linux动态链接库的使用 文件结构 目录结构 pwd /home/virgil/Desktop/shared_object tree . ├── lib │ └── add.c └── main └── main.c add.c int add(int a,int b) { return a+b; } main.c #include <stdio.h> //声明要调用库中的函数 int add(int a,int b); int main() { printf("%d\n",add(1,2)); return 0; } 编译动态库 进入 lib 目录 gcc add.c -fPIC -shared -o libadd.so 编译源代码 进入 main 目录 gcc main.c -o a.out -ladd 这时编译会报错,提示找不到动态链接库add 那么可以手动通过 -L 参数给出add动态链接库的路径 gcc main.c -o a.out -l add -L ../lib/ 如果每次都需要指明路径未免太麻烦了,实际上gcc默认会有一个默认搜索路径,它会首先在该路径中进行搜索,该路径通常是 /lib 或者 /usr/lib 目录. 那么我就把 libadd.so 拷贝到该目录下即可 sudo cp ../lib/libadd.so /usr/lib