[Linux] |
您所在的位置:网站首页 › 生成静态库命令 › [Linux] |
静态库和动态库
静态库和动态库的打包生成可执行程序时链接使用运行可执行程序时加载使用
提前声明,笔者示例的文件有mian.c/child.c/child.h。OK,我们先了解一下,库文件是什么?它其实就是打包了一堆实现常用功能的代码文件. ⭐静态库和动态库的打包打包时,先应将各个.c文件编译汇编成为目标文件 动态库的生成: gcc -fPIC -c child.c -o child.o gcc --share child.o -o libchild.so 注:动态库的命名方式:libxxx.so(xxx表示库的名称)静态库的生成: gcc -c child.c -o child.o ar -cr libchild.a child.o(后面的参数都是.o文件,可以不止一个,就是要打包的文件) 注:静态库的命名方式:libxxx.a(xxx表示库的名称)生成动态库的指令的参数的含义 –share:生成一个共享库,告诉gcc生成库,不生成可执行程序,不要去检测main函数-fPIC:产生与位置无关代码,当库用于多个程序共享,便于映射到每个程序中。 让库中的每个函数在各个程序中生成的时候相对于映射的起始位置的偏移量生成生成静态库的指令的参数的含义: -c:创建静态库-r :当静态库要生成,判断是否要将所有的.o文件重新生成静态库,如果只是某一个.o修改了,内容未变,则只用将该模块替换,不用重新生成静态库。(可以没有该参数选项)gcc main.c -0 main -lxxx ( -l:后面加库的名称) 有三种方法: 1.必须将库文件放到指定路径下:/usr/lib64或/usr/lib 仅仅针对动态库才会在运行时加载库文件,有两种方法: 1.必须将库放到指定路径下:/usr/lib64或/usr/lib |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |