返回

gcc使用原理

发布时间:2022-12-18 07:10:59 294

gcc使用原理

gcc工作原理
预处理gcc -E
编译 gcc -S
汇编 gcc -c
链接 gcc 无参数

gcc c源文件.c -o 生成可执行文件名称
不指定可执行文件名称默认生产a.out

gcc编译时指定 -I头文件位置(头文件在可执行文件目录中不需要指定位置)

-D 指定宏位置

-O1默认优化 -O3最高级优化

静态库
命名规则 lib+库名字+.a

制作静态库步骤
生成.o文件
gcc c源文件 -c

打包.o文件
ar rcs lib静态库文件名字.a + 上一步生成的.o文件

发布
给客户 静态库文件和头文件两部分

客户拿到静态库和头文件后,可以自己再写个c程序来调用静态库和头文件里面的函数,然后再gcc可执行文件发布出去,发布出去不用再给别人前面的静态库和头文件了(这是优点),因为在生成可执行文件就打包进去了。所以静态库缺点就是容量大,如果库文件或者头文件发生改变,要重新生成可执行文件,比较麻烦。


动态库(共享库)
命名规则 lib+库名字+.so

制作动态库步骤
生成.o文件
gcc c源文件 -fPIC -c

打包.o文件
gcc -shared -o lib静态库文件名字.so + 上一步生成的.o文件

客户拿到动态库和头文件后,可以自己再写个c程序,用动态库连接器调用(ldd + 可执行文件 可查看,最后一排就是动态库连接器ld.so.conf,其实也是一个库文件在/etc下,一般都是把自己写的动态库位置文件夹路径,写到这个文件里面,然后再更新系统库文件ldconfig -v,不然客户发布的可执行文件找不到库报错)动态库和头文件里面的函数,然后再gcc可执行文件发布出去

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线