CMake、CMakeLists.txt、Makefile、Make、GNU、gcc、g++

1 篇文章 0 订阅
1 篇文章 0 订阅

CMake、CMakeLists.txt、Makefile、Make、GNU、gcc、g++

CMake

CMake(cross platfrom make) 是一个跨平台的编译工具,可以用简单的语句来描述所有平台的编译过程。它能够输出各种各样的makefile或者project文件,能测试编译器所支持 C++ 特性。 CMake组态档取名为CMakeLists.txtCMake并不直接建构出最终的软件,而是产生标准的建构档(如 UnixMakefileWindows Visual C++projects/workspaces),然后再依一般的构建方式使用。这种可以使用各平台的原生建构系统的能力是 CMake 等其他类似系统的区别之处。

“CMake” 这个名字是 “cross platform make” 的缩写。虽然名字中含有 “make”,但是 CMakeUnix 上常见的 “make” 系统是分开的,而且更为高阶。

CMake 可以编译源代码、制作程序库、产生适配器(wrapper)、还可以用任意的顺序建构执行档CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支持静态与动态程式库的建构。


CMakeLists.txt

CMake组态档取名为CMakeLists.txt,是用一种建构软件专用的特殊编程语言写的 CMake 脚本,能改变程序的设置,而不用重新编译程序CMake 通过CMakeLists.txt配置项目的构建系统,配合使用 CMake 命令行工具生成构建系统并执行编译、测试,生成 Makefile,相比于手动编写构建系统(如Makefile)要高效许多。


Makefile

Makefile文件描述了整个工程的编译、链接等规则。Makefile 有自己的书写格式、关键字、函数。而且在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。Makefile在绝大多数的 IDE 开发环境中自动生成。

Makefil描述的规则其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建哪些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件等。

一旦提供一个(通常对于一个工程来说会是多个)正确的Makefile,编译整个工程所要做的事情就是在 shell提示符下输入make命令,整个工程完全“自动化编译”。

Make

make是一个命令工具,它解释Makefile 中的指令。


GNU

GNU 是一个自由软件操作系统(类 Unix 操作系统)。这个操作系统是GNU计划的主要目标, “GNU” 这个名字是 “GNU’s Not Unix” 的递归首字母缩写词。

GNU 有自己的内核:GNU Hurd,但发展仍未成熟(具有完备功能的内核尚未被开发成功)。类 Unix 操作系统中用于资源分配和硬件管理的程序称为 “内核” 。在实际应用上,多半使用Linux内核等替代方案作为系统核心,其中主要的操作系统是 Linux 的发行版。Linux操作系统包含了Linux内核与其他自由软件项目中的 GNU 组件和软件,该组合叫做 GNU/Linux操作系统。然而许多人错误地称之为“Linux”


GCC(GNU Compiler Collection)

首先说明,GCC(GNU Compiler Collection)gcc(GNU C Compiler) 是两个不同的东西。

GCC(GNU Compiler Collection,GNU编译器套件),现已被大多数类 Unix 操作系统采纳为标准的编译器,甚至在微软的 Windows上也可以使用 GCCGCC支持多种计算机体系结构芯片,如x86ARMMIPS等。并已被移植到其他多种硬件平台。

GCC 原名为 GNU C 语言编译器( GNU C Compiler ),只能处理 C 语言。但其很快扩展,能够支持更多的编程语言,所以改名 GNU编译器套件


gcc/g++

gccg++ 分别是 GNUCC++ 编译器。

gcc/g++ 在执行编译的时候一般有下面4步:

  1. 预处理,生成.i的文件[预处理器cpp]。
  2. 将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]。
  3. 由汇编变为目标代码(机器代码)生成.o的文件[汇编器as]。
  4. 连接目标代码,生成可执行程序[链接器ld]。

gcc命令学习


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值