Chinaunix首页 | 论坛 | 博客
  • 博客访问: 558890
  • 博文数量: 142
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1452
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-12 16:28
文章分类

全部博文(142)

文章存档

2016年(10)

2015年(60)

2014年(72)

我的朋友

分类: C/C++

2015-07-17 18:47:42


点击(此处)折叠或打开

  1. [root@localhost dynamic]# ls -al
  2. total 40
  3. drwxr-xr-x 2 root root 4096 Jul 17 18:25 .
  4. drwxr-xr-x 4 root root 4096 Jul 16 16:51 ..
  5. -rw-r--r-- 1 root root 63 Jul 17 18:25 add.c
  6. -rw-r--r-- 1 root root 66 Jul 17 18:25 add.h
  7. -rw-r--r-- 1 root root 143 Jul 17 18:25 main.c
  8. [root@localhost dynamic]# gcc -fPIC -Wall -c add.c -o add.o
  9. [root@localhost dynamic]# gcc -shared -o libadd.so add.o

点击(此处)折叠或打开

  1. --share: 指定生成动态链接库
  2. -fPIC: 编译为位置独立的代码,用于编译共享库。目标文件需要创建成位置无关的代码,概念上就是在可执行程序转载它们的时候,它们可以放在可执行程序的内存里的任何地方

点击(此处)折叠或打开

  1. [root@localhost dynamic]# gcc main.c -ladd -L. -o main
  2. [root@localhost dynamic]# ls -al
  3. total 72
  4. drwxr-xr-x 2 root root 4096 Jul 17 18:28 .
  5. drwxr-xr-x 4 root root 4096 Jul 16 16:51 ..
  6. -rw-r--r-- 1 root root 63 Jul 17 18:25 add.c
  7. -rw-r--r-- 1 root root 66 Jul 17 18:25 add.h
  8. -rw-r--r-- 1 root root 1240 Jul 17 18:26 add.o
  9. -rwxr-xr-x 1 root root 5591 Jul 17 18:27 libadd.so
  10. -rwxr-xr-x 1 root root 7140 Jul 17 18:28 main
  11. -rw-r--r-- 1 root root 143 Jul 17 18:25 main.c
  12. [root@localhost dynamic]# ./main
  13. ./main: error while loading shared libraries: libadd.so: cannot open shared object file: No such file or directory
找不到链接库
解决方法:
1.将libadd.so 拷贝到/usr/lib 或者/lib中,然后调用ldconfig
2.export LD_LIBRARY_PATH=$(pwd)

点击(此处)折叠或打开

  1. [root@localhost dynamic]# cp libadd.so /usr/lib
  2. [root@localhost dynamic]# ./main
  3. ./main: error while loading shared libraries: libadd.so: cannot open shared object file: No such file or directory
  4. [root@localhost c_language]# ldconfig
    [root@localhost c_language]# cd lib/dynamic/
    [root@localhost dynamic]# ./main
    1 + 2 = 3





阅读(797) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~