g++,gcc,make,cmake,makefile,vscode,vs之间的关系
编译过程是源文件 -预编译-.i文件 -编译-.s文件 -汇编-.o文件 -链接-可执行文件、
gcc和g++都是编译器,不过gcc处理cpp时不能直接连接标准库,g++可以直接连接,所以cpp一般用g++
gcc、g++
操作选项(以GNU
编译器为准)
-E
预处理选项,生成.i
文件
-S
编译选项,生成.s
汇编文件
-c
汇编选项,将汇编文件编译成二进制文件
-o
生成可执行目标文件选项
-I
(大写的i
) 将设置增加 #include <>
标准库的查找目录
-fPIC
共享库代码段复用,代码段安全访问的目的,编译动态库时用到
-L
指定链接库的路径,LD_LIBRARY_PATH
:此库文件不在缺省目录下 /lib和/usr/lib,那么就需要指定环境变量LD_LIBRARY_PATH。
-l(小写l)指定程序要链接的库,后面紧跟库名
makefile文件中描述了整个软件工程的编译规则和各个文件之间的依赖关系,有点像sh文件
makefile文件要通过make来运行,然后make install安装,一般的包安装就是三部曲,./configure,make,make install
cmake
是跨平台的安装编译工具,只需要编写CMakeList.txt
文件,能够自动生成工程文件和makefile
文件,相当于在make上又封装了一层
vscode是一个编辑器,不是编译器,vs是IDE,是一个完整的集成开发环境
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探