0
点赞
收藏
分享

微信扫一扫

动态库的生成和使用

小龟老师 2022-01-14 阅读 88

生成动态库文件

gcc -fPIC -shared *c -o libTest.so
  • -fPIC选项

    ​ 这是一个编译选项,PICPosition Independent Code的缩写,表示要生成位置无关的代码,即加载器把其加载到内存任何位置,其代码均可正常运行,所以代码中都是使用的相对地址,这是动态库所需要的一个特性。

  • -shared选项

    这是一个链接选项,目的是为了告诉gcc生成动态库而不是可执行文件;


使用库文件进行编译

gcc test.c -o test -lTest -L.

动态库的使用

​ 如果直接运行可执行文件./test,系统会提示无法打开共享文件,是由于共享库没有在系统加载器所指定的路径中

​ 一般加载器都会默认在/lib/usr/lib或者LD_LIBRARY_PATH环境变量指定的路径中搜索动态库,所以如果把.so文件复制到前两个目录便可执行,通常为了不破坏系统文件,一般都会使用环境变量定义路径:

export LD_LIBRARY_PATH="."
./test
举报

相关推荐

0 条评论