做网站用哪个ecalipse,php网站开发实训实践总结,南昌做网站公司,公益网站设计说明
编译器是翻译代码为计算机语言的一个工具#xff0c;我们平时写的代码如果想在某个特定的计算机上执行#xff08;计算机的cpu构架不同#xff09;#xff0c;就需要编译器来对代码进行编译汇编链接#xff0c;而汇编和链接的过程对于每个不同的平台上过程都不一样。…说明
编译器是翻译代码为计算机语言的一个工具我们平时写的代码如果想在某个特定的计算机上执行计算机的cpu构架不同就需要编译器来对代码进行编译汇编链接而汇编和链接的过程对于每个不同的平台上过程都不一样。
gcc和clang是两个不同的编译器而make和cmake是搭配编译器来方便用户进行多文件编译而发明的工具。 具体解释
gcc和clang都是编译器。
gcc是GNU Compiler Collection也称为GNU编译器套件可以理解为编译器它可以编译很多种语言C/C、FORTRAN、JAVA、OBJC、ADA等。假如我有一个源文件比如.c文件我就可以用gcc命令来编译它。
clang也一样Clang是一个C语言、C、Objective-C、Objective-C语言的轻量级编译器。源代码发布于BSD协议下。Clang将支持其普通lambda表达式、返回类型的简化处理以及更好的处理constexpr关键字。
clang和gcc相比比gcc编译速度更快一些而且错误提示更人性化。
但是光有gcc和clang是不行的如果你的源文件很多那就需要一个一个去编译太麻烦工作量巨大。我们平常用的VC、Visual Studio、Clion这种大型IDE里面使用的编译器就是gcc或clang。但是我们通常在使用的时候也就只需要按一个按钮就可以实现对程序的编译这是如何进行的呢IDE里面已经帮你做了你需要做的一些了。 上图是Clion在编译几个.c文件时候的编译信息我们可以看到几个信息Clion使用了cmake工具以及Clion编译C/C使用的编译器为AppleClang(就是适配macbook的clang编译器)。 make工具相当于一个智能的批处理工具本身没有编译和链接的功能而是用类似于批处理的方式通过调用makefile文件中用户指定的命令来进行编译和链接。而makefile又是什么就相当于用户将要执行的一系列命令make根据makefile中的命令对相应的源文件进行编译和链接的。
makefile中可能就有类似的一下命令gcc -o test.c。
makefile文件在github源码安装程序中很常见你下载了一个源码包通常在readme中会有这样的一句
$ make all
$ make install # root requiredmake all即编译所有当然这个源码包中必须有makefile文件才行执行make all这个命令后make会根据makefile中的命令进行编译。当然这个是“别人家”的源码包这个通常都给你写好了但是如果你自己要编译很多源文件的时候也是要自己写吗
当然不还是比较麻烦所以我们需要cmake工具这样就可以更加方便地生成makefile文件给make用。cmake还有其他功能就是可以跨平台生成对应平台能用的makefile无需自己根据每个平台的不同特性去修改。而cmake根据什么生成makefile它需要根据CMakeLists.txt文件组态档去生成makefile。
下面是一个CMakeLists.txt文件
cmake_minimum_required(VERSION 3.8)
project(First_Code)
set(CMAKE_CXX_STANDARD 11)
#set(CMAKE_CXX_FLAGS -stdc0x ${CMAKE_CXX_FLAGS} -g -ftest-coverage -fprofile-arcs)
#set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -stdc11)
set(SOURCE_FILES main.cpp test.cpp assignment.cpp)
add_executable(First_Code ${SOURCE_FILES})
CMakeLists.txt文件是谁写的当然是你自己写但是如果你在用IDE比如本文中的例子Clion。那就不用担心了上面的一段代码CLion为你自动生成了好吧这个也不用自己写。
但是有时候IDE可能会出现某些错误这个时候就需要你自己去修改相关文件了而要修改的文件无非也就本文中介绍的这几种。 总结
gcc、clang两个编译器用于将程序员的编程语言编译汇编链接成机器语言
make在没使用IDE时make工具相当于一个智能的批处理工具本身没有编译和链接的功能而是用类似于批处理的方式通过调用makefile文件中用户指定的命令来进行编译和链接
makefile相当于用户将要执行的一系列命令make根据makefile中的命令对相应的源文件进行编译和链接
cmake用于更加方便地生成makefile文件给make用cmake还有其他功能如可以跨平台生成对应平台能用的makefile无需自己根据每个平台的不同特性去修改
CMakeLists.txtcmake根据CMakeLists.txt文件组态档去生成makefileCMakeLists.txt可以自己写写起来比makefile容易很多我们使用IDE时会自动生成各种CMakeLists.txt 原文链接
编译器gcc、clang、make、cmake辨析 - Oldpan的个人博客oldpan.me 发布于 2019-04-30