linux下创建静态库与动态库

静态库

 编写好c源文件,里面只有函数的实现。要调用的文件比如是main.c,在文件里声明c源文件里的库函数名。

1 首先 gcc -c hello.c  生成hello.o

2 ar crs libhello.a hello.o

3 gcc -o main main.c -L. -lhello   -L后面跟着库的路径,-l后面跟着libxxx.a xxx的内容

-I(大写i)指定库函数在主函数调用的头文件的路径

 动态库

1创建位置无关代码 gcc -fPIC -c hello.c   生成hello.o   其中选项为 I(大写i)

2 gcc -shared -o libhello.so.1 hello.o

3 创建软连接 ln -s libhello.so.1 libhello.so  将libhello.so指向libhello.so.1

4 gcc -o mycpp mycpp.c -L. -lhello 

系统默认找共享库,想找静态库要加选项-static 静态库名

5 让程序运行时找到动态库的路径有两种方法:

1)把库考到/usr 或者/usr/lib 目录下。

2)LD_LIBRARY_PATH(lood library path)环境变量下加上库所在路径

export LD_LIBRARY_PATH=./    等于号两边没有空格,让程序找到动态库在当前目录下

 

 

另外:运行时需要查看一个程序需要哪些库, 可以用命令ldd mycpp.

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值