目录
设置MSVC环境变量
C文件编译流程
编译
链接
学习起步之初,先用最基础的命令行工具进行学习
设置MSVC环境变量
这个是在VS2019下进行配置的,位置和你安装IDE的位置有关
MSVC
D:\VS2019\IDE\VC\Tools\MSVC\14.29.30133
WK10_INCLUDE
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0
WK10_LIB
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0
WK10_BIN
C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0
INCLUDE
%WK10_INCLUDE%\ucrt;%WK10_INCLUDE%\um;%WK10_INCLUDE%\shared;%MSVC%\include;
LIB
%WK10_LIB%\um\x64;%WK10_LIB%\ucrt\x64;%MSVC%\lib\x64;
Path下新增
%MSVC%\bin\HostX64\x64
%WK10_BIN%\x64
验证环境配置
C文件编译流程
说明:
- C文件进行预处理,进行宏替换,生成 .i 后缀文件
- 进行编译,编译为机器码,是一堆二进制数据,文件后缀为 .obj
- 链接,将二进制机器码,转换成二进制语言的可执行程序,exe等可执行文件
编译
执行下面的命令,会产生一个obj文件,存储了c代码的机器代码以及所需的数据支撑和代码支撑
cl /c Hello.c
这个obj文件不能直接运行,只是高级语言转化为低级语言,而且是可以跨语言的,不能跨平台。
obj文件不能直接执行,虽然里面包含的是机器代码,要想执行需要和操作系统约定,比如:代码执行位置,数据执行位置,程序的入口
另外编译器有严格审查机制,可以设置,从1-4,从弱到强、
cl /c /W(1-4) /P Hello.c
查看替换之后结果,会生成一个.i的文件,W4最高检查标准
cl /c /W4 /P Hello.c
打开Hello.c
这个文件就是把include,宏给替换之后的结果,还未编译
链接
抽取代码以及数据,打造为当前平台的可执行程序
link
命令用于将目标文件、库文件和其他资源文件链接在一起生成可执行文件、动态链接库(DLL)或静态库。你可以使用link
命令将名为Hello.obj
的目标文件链接为可执行文件。
link Hello.obj
原来的obj也就3kb,经过打包后直接犯了40倍,生成Windows平台的可执行文件
发现winodws平台对大小写其实是不敏感的