首页 > 代码库 > 018_C语言静态库动态库
018_C语言静态库动态库
linux下C语言编程环境
头文件目录:/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.h和libmy_math.so文件时,必须配置环境指定库的路径:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
echo $LD_LIBRARY_PATH:. 查看环境有没有手动配置
更新动态库:当实现接口的函数功能发生变化时,只需重新生成动态库覆盖原来的动态库即可,而不需要重新编译test.c文件
第三方软件:
框架:带主函数的C文件
组件:函数库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。