《Linux开发笔记》C语言编译

C语言编译过程

编译过程主要分为四步:预处理、编译、汇编、链接

预处理:主要用于查找头文件、展开宏

编译:把.i文件编译成.s文件

汇编:把.s文件汇编为.o文件

链接:把多个.o文件链接成一个app

以上四个步骤主要由3个命令实现,cll、as、collect2,这三个命令由一个命令触发:gcc -o hello hello.c

查看具体的编译步骤,可加参数-v查看

gcc代码选项

在使用gcc命令时可以通过添加选项实现多种功能

库分为静态库(a文件)和动态库(so文件),其中静态库表示将主函数和库打包在一起,会比较大,而动态库只是告诉主函数库在哪里,不进行一起打包,会比较小。

静态库:ar crs libsub.a sub.o

动态库:gcc -shared -o libsub.so sub.o

相关推荐
切糕师学AI8 小时前
ARM 中的 SVC 监管调用(Supervisor Call)
linux·c语言·汇编·arm开发
jghhh018 小时前
基于MATLAB的可见光通信系统仿真实现
开发语言·matlab
biuyyyxxx8 小时前
Power Query学习笔记(一)
笔记·学习
xiaoqider8 小时前
C++模板进阶
开发语言·c++
yaonoran8 小时前
【无标题】
java·开发语言·变量
康小庄8 小时前
浅谈Java中的volatile关键字
java·开发语言·jvm·spring boot·spring·jetty
移幻漂流8 小时前
C/C++并发编程详解:如何写出优秀的并发程序
c语言·开发语言·c++
余醉 | dtminer9 小时前
R语言常见新手问题
开发语言·r语言
それども9 小时前
为什么要加@ResponseBody
java·开发语言·spring boot
一只专注api接口开发的技术猿9 小时前
微服务架构下集成淘宝商品 API 的实践与思考
java·大数据·开发语言·数据库·微服务·架构