018_C语言静态库动态库



linuxC语言编程环境

头文件目录:/usr/include/

库目录:/usr/lib/

 

动态库与静态库的区别:在计算机程序源代码需要通过翻译、汇编、链接过程而生成可执行文件,再由加载器加载到内存,两者区别就在于程序加载时链接到相应库的方式不同,程序编译时指定了静态库,编译后可直接运行,而编译时指定动态库时,编译后还要先指定库的路径。

 

静态库:

ar -rs libmy_math.a *.o 生成静态库libmy_math.a

ar -t 查看静态库

gcc test.c -L. -lmy_math - o test  使用静态库编译生成可执行文件

 

动态库:

gcc -fPIC *.o  生成动态库对应的.o文件

gcc -shared -o libmy_math.so *.o 生成动态库

gcc test.c -lmymy_math -o test 使用动态库编译生成可执行文件

移动my_math.h文件到/usr/include/

移动libmy_math.so文件到/usr/lib/

当不移动my_math.hlibmy_math.so文件时,必须配置环境指定库的路径:

export  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

echo $LD_LIBRARY_PATH:.    查看环境有没有手动配置

更新动态库:当实现接口的函数功能发生变化时,只需重新生成动态库覆盖原来的动态库即可,而不需要重新编译test.c文件

 

第三方软件:

框架:带主函数的C文件

组件:函数库

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值