篇4:基于Ubuntu18.04下GCC下的动态库的编译及其使用

环境:Ubuntu18.04 + gcc veresion 7.5.0

1. 新建目录demo1, 其中包括3个文件, max.h, max.c, main.c,如下图所示:

篇4:基于Ubuntu18.04下GCC下的动态库的编译及其使用_第1张图片

2. 动态库的创建及使用

(1) GCC编译得到.o文件.
 gcc -c max.c

在这里插入图片描述

(2) 生成动态库.so文件(动态库文件命名规范:以lib作为前缀).
gcc -shared -fPIC -o libmax.so max.o

篇4:基于Ubuntu18.04下GCC下的动态库的编译及其使用_第2张图片

(3) 加载动态库, -L. 表示动态库所在路径, -l后面跟动态库名字, -o后面的app表示生成的可执行程序的名字.
gcc -o app main.c -L. -lmax

在这里插入图片描述

(4) 最后执行生成的可执行程序.
./app

如下图所示,此时发生了报错.
在这里插入图片描述
解决方案:
将libmax.so拷贝到/usr/lib中。由于运行时,是在/usr/lib中找库文件的。

拷贝完成后,再次执行程序, 发现已经OK了, 如下图所示。
篇4:基于Ubuntu18.04下GCC下的动态库的编译及其使用_第3张图片

你可能感兴趣的:(程序编译/脚本篇,Ubuntu18.04,GCC,动态库so的创建及使用)