那年,一步一步学linux c ---关于动态链接库

2019-07-13 00:23发布

转自:http://blog.csdn.net/muge0913/article/details/7308178

那年,一步一步学linux c ---关于动态链接库

分类: 嵌入式linux c 编程 3494人阅读 评论(2) 收藏 举报 linuxclibrarypathgcc 在做完mini6410移植全攻略后,打算把自己的linux c笔记,贴出来和大家共享,有不对支持希望大家指出,谢谢!! 转载请注明出处:http://blog.csdn.net/muge0913/article/details/7308178

在上篇文章中,是对静态链接库的介绍,其实有了上面的介绍动态链接库的制作就简单了,这篇来制作动态链接库~~~
创建动态链接库: [cpp] view plaincopyprint?
  1. #gcc –shared –Wall –fPIC bar.o foo.o –olibfoobar.so
#gcc –shared –Wall –fPIC bar.o foo.o –olibfoobar.so

或手动指定库路径 [cpp] view plaincopyprint?
  1. $ gcc -o foobar main.c-llt -B /path/to/lib
$ gcc -o foobar main.c-llt -B /path/to/lib

这里的-B 选项就添加 /path/to/lib 到gcc搜索的路径之中。这样链接没有问题但是方法II
中手动链接好的程序在执行时候仍旧需要指定库路径(链接和执行是分开的)。需要添加系
统变量 LD_LIBRARY_PATH :
[cpp] view plaincopyprint?
  1. $ exportLD_LIBRARY_PATH=/path/to/lib
$ exportLD_LIBRARY_PATH=/path/to/lib
查看动态链接库 和上次比 有发现没~~~~~~
[cpp] view plaincopyprint?
  1. $ ldd test
  2. linux-gate.so.1 => (0xffffe000)
  3. libfoobar.so => /usr/lib/libfoobar.so (0xb7f58000)
  4. libc.so.6 => /lib/libc.so.6 (0xb7e28000)
  5. /lib/ld-linux.so.2 (0xb7f6f000)