tmj_159 发表于 2013-1-26 12:30:03

我的C语言之路-----动态库和静态库

花了一下午时间来看动态库和静态的使用,还好都看懂了,而且都实验成功了
 
linux  下静态库以.a结尾 动态库以.so结尾
下面是我的目录结构
main.c
stack3
          stack.h
          stack.c
          pop.c
          push.c
          is_empty.c
 
1.静态库
  cd stack3
  gcc -c pop.c push.c stack.c is_empty.c
  ar rs libstack.a *.o
  cd ..
  gcc main.c -L stack3 -lstack -Istack -o main
  ./main
 
2.动态库
  cd stack3
  gcc stack.c pop.c push.c is_empty.c -fPIC -shared -o libstack.so
  (有些资料上写的 -c -o一起用,经测试不能一起用的)
  cd ..
  gcc main.o -L stack3 -lstack -Istack3 -o main
  ./main
  (错误提示找不到libstack.so)
   ldd main
  (查看链接路径的时候也找不到)
   cat /etc/ld.so.conf
   (显示 include ld.so.conf.d/*.conf)
   vim /etc/ld.so.conf.d/mytest.conf
   (添加一行 /....../stack3/)
   ldconfig
   ./main
   (成功)
 
3.小知识
拷贝一个文件夹
cp -rf stack2 stack3
(不用mkdir stack3哦)呵呵,我是菜鸟,以前不知道
 
ps 我学习的资料大部分是linux c 一站式学习.pdf
页: [1]
查看完整版本: 我的C语言之路-----动态库和静态库