C语言是编译(compile)语言, 需要使用编译器(compiler)将源代码(source code)编译为一个机器语言(machine code)的二进制(binary)的executable. 这种机器语言一般来说只有计算机可以理解,只有0和1组成,神秘而科幻. 如果你看过任何关于C的教程, 那他一定会教你一句类似下面的指令
gcc hello_world.c
其中gcc就是compiler, hello_world.c当然就是你的源码. 这句指令没毛病的话会帮你生成一个a.out, 这就是你的executable.
./a.out
就会执行你的程序. 类似常见的还有,
gcc -o hello_world.c hello
这句会把你的源码编译成名为hello的程序. 可如果你的作业里有很多个文件要一起编译呢?这种情况一般会用到makeFile来帮你自动化编译过程. UBC关于C的作业应该都有一个makeFile, 可以顺利的在ugrad linux机器上帮你编译所有相关源码, 但在你自己的电脑上可能不好用. 直接输入make
或者make something
然后就会有一些新的文件生成,其中没有后缀的文件很可能就是你的executable. 当然如果你的source code有语法上的错误,编译不会成功,并会提示你哪里(line:char)有什么问题. 改正之后建议先make clean
清理所有以前生成的文件,然后再次make
.
make是个功能很强大的逻辑管理程序,并不能单单认为它是用来规划程序构建顺序的说明书。然而,在UBC的assignment中make都是被用来build最后的executable的。
总有人问我为什么我们要学C语言这门全是坑的语言?
答案就跟为什么要学文言文一样.