使用cl编译器编译和链接C语言文件
大家好,我是北方素素。
也许你已经看过我录制的《素素带你学C语言》系列的视频,在这里,我准备将一些小知识记录下来,一方面是给自己提供备忘,另一方面也能普及一下这方面的知识。
这篇文章的主要内容是如何在命令行使用visual studio的cl编译器。
首先,visual studio使用的编译器叫做cl编译器,要怎样使用呢?我们需要在安装完visual studio(这里我用的是community 2017版)后,在开始菜单找到“适用于VS2017的x64本机工具命令提示”,然后打开,界面如下:

之后,我们先在这里输入cl,查看一下简介:

接下来就可以使用了。
我们首先在电脑上写好一个C语言文件-hello.c
然后使用命令切换到hello.c所在的文件夹。这里我直接放在了F盘下:

这里用到的命令是 cd /d 你的文件夹目录
可以看到已经切换到F盘下了,接着我们输入cl hello.c

这个时候默认是先进行编译,之后自动进行链接,所以现在文件夹下应该多出来两个文件,一个是编译后生成的hello.obj,一个是链接完生成的hello.exe。
我们输入hello执行一下hello.exe。

那么如何分别进行编译和链接呢?
首先删除文件夹下的hello.obj与hello.exe。
然后执行cl /c hello.c

这个时候只进行了编译,所以文件夹内只多了一个hello.obj文件。
接下来使用link hello.obj进行链接

这个时候文件夹内就会多出hello.exe这个文件啦~执行一下,结果是和之前一样的。
好了,关于cl编译器的使用就写到这里。
补充一下:虽然我们能够理解C语言源代码,但是机器不能,机器只能识别被称为机器语言的二进制指令,必须要把源代码转换为机器语言,计算机才能执行我们的程序。而编译的作用就是将我们写好的源文件翻译为机器能够看懂的二进制指令。.obj文件就被叫做目标文件,里面包含的代码叫做目标代码。
如果程序中使用了库函数,那么在生成可执行程序(exe文件)之前,需要将我们的目标文件与库函数中的目标代码组合起来,这个组合的过程就叫做链接。
经过编译和链接,最终生成了可以运行的exe程序~
作者:北方素素
https://www.bilibili.com/read/cv271176
出处: bilibili