外国手表网站,济南seo优化公司助力排名,想让网站被谷歌收录怎么做,简历网站免费最近#xff0c;有没有被make、cmake、makefile... ... 这些东西绕晕了#xff0c;看看下面的文章#xff0c;也许就可以理解清楚了。
1. gcc
它是GNU Compiler Collection#xff08;就是GNU编译器套件#xff09;#xff0c;也可以简单认为是编译器#xff0c;它可以…最近有没有被make、cmake、makefile... ... 这些东西绕晕了看看下面的文章也许就可以理解清楚了。
1. gcc
它是GNU Compiler Collection就是GNU编译器套件也可以简单认为是编译器它可以编译很多种编程语言括C、C、Objective-C、Fortran、Java等等。
我们的程序只有一个源文件时直接就可以用gcc命令编译它。
可是如果我们的程序包含很多个源文件时该咋整用gcc命令逐个去编译时就发现很容易混乱而且工作量大所以出现了下面make工具。
2. make
make工具可以看成是一个智能的批处理工具它本身并没有编译和链接的功能而是用类似于批处理的方式—通过调用makefile文件中用户指定的命令来进行编译和链接的。
3. makefile
这个是啥东西
简单的说就像一首歌的乐谱make工具就像指挥家指挥家根据乐谱指挥整个乐团怎么样演奏make工具就根据makefile中的命令进行编译和链接的。makefile命令中就包含了调用gcc也可以是别的编译器去编译某个源文件的命令。
makefile在一些简单的工程完全可以人工拿下但是当工程非常大的时候手写makefile也是非常麻烦的如果换了个平台makefile又要重新修改这时候就出现了下面的Cmake这个工具。
4. cmake
cmake就可以更加简单的生成makefile文件给上面那个make用。当然cmake还有其他更牛X功能就是可以跨平台生成对应平台能用的makefile我们就不用再自己去修改了。
可是cmake根据什么生成makefile呢它又要根据一个叫CMakeLists.txt文件学名组态档去生成makefile。
5. CMakeList.txt
到最后CMakeLists.txt文件谁写啊亲是你自己手写的。
6. nmake[1]
nmake又是啥东西
nmake是Microsoft Visual Studio中的附带命令需要安装VS实际上可以说相当于linux的make明白了么 总结一下大体流程[2]
1.用编辑器编写源代码如.c文件。
2.用编译器编译代码生成目标文件如.o。
3.用链接器连接目标代码生成可执行文件如.exe。
但如果源文件太多一个一个编译那得多麻烦啊于是人们想到为啥不设计一种类似批处理的程序来批处理编译源文件呢
于是就有了make工具它是一个自动化编译工具你可以使用一条命令实现完全编译。但是你需要编写一个规则文件make依据它来批处理编译这个文件就是makefile所以编写makefile文件也是一个程序员所必备的技能。
对于一个大工程编写makefile实在是件复杂的事于是人们又想为什么不设计一个工具读入所有源文件之后自动生成makefile呢于是就出现了cmake工具它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。但是随之而来也就是编写cmakelist文件它是cmake所依据的规则。cmake中有很多设置库的此时还不是可执行文件而make生成后才是二进制可执行文件。