码迷,mamicode.com
首页 > 编程语言 > 详细

018_C语言静态库动态库

时间:2014-08-06 19:22:32      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:c语言   汇编   编程   软件   linux   



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文件

组件:函数库

 

018_C语言静态库动态库,布布扣,bubuko.com

018_C语言静态库动态库

标签:c语言   汇编   编程   软件   linux   

原文地址:http://blog.csdn.net/extendsobject/article/details/38401809

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!