下面我们建立一个动态链接库。
回顾上篇文章讲的建立静态链接库,我们把这几个文件丢到一个新的目录下:
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.
之后运行就可以了!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。