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文件
组件:函数库
原文地址:http://blog.csdn.net/extendsobject/article/details/38401809