| 本帖最后由 Qter 于 2021-6-29 22:25 编辑 
 "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"  MSVC++ 14.0  _MSC_VER == 1900 (Visual Studio 2015 version 14.0)
 
 "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars32.bat"     Visual Studio 2019 : vc16
 
 
 
 cl.exe是Microsoft C/C++编译器
 
 
 编译器:cl(cl.exe) 链接器:link(link.exe) 使用cl和link编译链接的示例 https://blog.csdn.net/huashuolin001/article/details/82384545 1.  编写源代码。创建编写文件,test.c #include<stdio.h> int main(void) {     printf("compile&&link test\n");     getchar();     return (0); } 2.  编译。打开cmd窗口,进入test.c目录,执行cl /c test.c进行编译,生成test.obj文件     FAQ:     1) 'cl' 不是内部或外部命令,也不是可运行的程序或批处理文件。         解决方法:将cl.exe所在路径((cl.exe位于\VC\bin))加入系统环境变量;重启cmd窗口     2) 编译器cl找不到mspdb80.dll(mspdb1000.dll或者mspdb140.dll等,视vs版本而定),无法启动         解决方法:找到该.dll,加入到cl.exe所在的文件夹(该动态链接库所在文件夹Common7\IDE)     3) 链接错误,stdio.h:不包括路径集         解决方法:执行Common7\Tools\vsvars32.bat(vsvars32.bat 文件用于设置适当的环境变量以启用命令行生成)     注意: 执行cl test.c,会直接生成test.obj文件和test.exe文件,因为执行cl test.c在编译后会自动执行链接。因此此处为方便理解,分开执行编译和链接的过程。cl命令后的/c参数代表,只编译不链接。 3. 链接。     link test.obj 生成test.exe文件 
 
 gcc  -g  -o -c
 
 调试信息 输出文件名 汇编
 
 -c 源码编译为目标代码跳过汇编和连接的步骤
 
 一一预编译一一
 
 拷贝include文件
 
 替换define
 
 宏替换
 
 一一编译一一
 
 把c代码转为汇编代码\语法检查
 
 一一汇编一一
 
 as 汇编代码转目标代码(.o)
 
 gcc -c main.c
 
 一一连接一一
 
 ld 把目标文件转可执行文件
 
 
 编译器:把高级语言编译为指定机器语言的工具,以高级语言编写的程序源代码为输入,产生一个包含机器代码及相关信息(包括符号表和重定位信息等)的目标文件.
 
 
 -g     -Zi   生成调试信息
 
 make  nmake
 
 g++(gcc)  cl
 
 |