CMake、CMakeLists.txt、Makefile、Make、GNU、gcc、g++ 您所在的位置:网站首页 qtcreator导入cmake工程 CMake、CMakeLists.txt、Makefile、Make、GNU、gcc、g++

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

2023-06-05 01:53| 来源: 网络整理| 查看: 265

CMake、CMakeLists.txt、Makefile、Make、GNU、gcc、g++ CMakeCMakeLists.txtMakefileMake GNUGCC(GNU Compiler Collection)gcc/g++

CMake

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

“CMake” 这个名字是 “cross platform make” 的缩写。虽然名字中含有 “make”,但是 CMake 和 Unix 上常见的 “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上也可以使用 GCC。 GCC支持多种计算机体系结构芯片,如x86、ARM、MIPS等。并已被移植到其他多种硬件平台。

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

gcc/g++

gcc 与 g++ 分别是 GNU 的 C 和 C++ 编译器。

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

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

gcc命令学习



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有