C语言 之建立动态链接库

下面我们建立一个动态链接库。

回顾上篇文章讲的建立静态链接库,我们把这几个文件丢到一个新的目录下:

makefile tiaoshen.c  mmc.h xu.c

你也可以自己建立新的文件,这里不再赘述。

makefile文件中改成

all:

gcc tiaoshen.c -o tiaoshen.o -c -fPIC

gcc -o libtiaoshen.so tiaoshen.o -shared

-FPIC表示编译的时候编译成位置无关码,然后可以被加载到任意地方去执行

-shared的意思是共享库方式

之后就进行makefile的编译(注意makefile里的gcc前面的空白,是Tab键)

使用我们的链接库:

你直接包含头文件然后使用是不行的,一般你建立的 .so 文件不在它寻找的固定目录下,有两种方法可以解决

1、cp libtiaoshen.so /usr/lib即可,这是系统自带的库函数文件

2、使用环境变量export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:(后面跟上你的动态库的路径)

然后编译:

gcc xu.c -o shen -ltiaoshen -L.

之后运行就可以了!

发布了174 篇原创文章 · 获赞 394 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/tiao_god/article/details/52291049