在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
动态库的生成: 1、/*mysum.c*/ 复制代码 代码如下: #include <stdio.h> #include "src.h"
2、/*mysum.h*/ 复制代码 代码如下: #ifndef __SRC_H__ #define __SRC_H__ int sum(int a,int b); #endif 3、/*main.c*/ 复制代码 代码如下: #include <stdio.h> extern int sum(int a,int b); /* #include <stdio.h> #include "mysum.h" */ int main() 4、生成动态库 复制代码 代码如下: gcc -c -fPIC mysum.c mysum.h //生成mysum.o文件 gcc -shared -fPIC -o libmysum.so mysum.o //生成动态库文件,默认的命名方式为lib+名称.so 5、动态库静态加载 复制代码 代码如下: gcc -o main main.c -L. -lmysum -Wall 或 gcc -o main main.c -lmysum -Wall 6、执行 ./main时会报告错误,提示无法加载libmysum.so共享库。 7、处理方法有三: 方法一: 将动态库拷贝到 /lib或 /usr/lib中去 如:sudo cp libmysum.so /lib 方法二: 改变环境变量: LD_LIBRARY_PATH=$PWD export LD_LIBRARY_PATH 方法三: 在编译时指定共享库的路径: gcc -o main1 -Wl,-rpath,.-L. -louyang main.o |
请发表评论