《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

相关推荐
健康的猪几秒前
golang的cgo的一点小心得
开发语言·后端·golang
祁同伟.9 分钟前
【数据结构 · 初阶】- 堆的实现
c语言·数据结构
夜夜敲码22 分钟前
C语言教程(十六): C 语言字符串详解
c语言·开发语言
帅云毅23 分钟前
Web3.0的认知补充(去中心化)
笔记·学习·web3·去中心化·区块链
豆豆24 分钟前
day32 学习笔记
图像处理·笔记·opencv·学习·计算机视觉
宋康28 分钟前
C语言结构体和union内存对齐
c语言·开发语言
居然是阿宋38 分钟前
Kotlin高阶函数 vs Lambda表达式:关键区别与协作关系
android·开发语言·kotlin
nenchoumi31191 小时前
VLA 论文精读(十六)FP3: A 3D Foundation Policy for Robotic Manipulation
论文阅读·人工智能·笔记·学习·vln
学习噢学个屁1 小时前
基于51单片机的超声波液位测量与控制系统
c语言·单片机·嵌入式硬件·51单片机
凉、介1 小时前
PCI 总线学习笔记(五)
android·linux·笔记·学习·pcie·pci