【科普】GNU、GNU/Linux、Linux、Unix之间的关系和区别,以及延伸g++、gcc的关系和区别

GCCGNU到底啥意思? 本文目录GCC/GNU名字的由来GCCGNU理查德·斯托曼GPLLinux参考文献 GCC/GNU名字的由来 今天闲来无事,想要清理一下磁盘,遇到了一个名为 TDM-GCC-64 的文件夹,也就是gcc编译器所在的文件,突然好奇,编译器为什么叫GCC呢?于是Wiki了一下,然后便一发不可收拾…… GCC 原来GCC是——GNU编译器套装,那么问题来了,GNU又是啥? 不知道你有没有好奇过:这... 阅读详情

来自:《陆伟峰:论GNU、Linux和GNU/Linux之间的关系》http://os.51cto.com/art/200608/30399.htm
《C++学习笔记:GCC和G++》https://www.linuxidc.com/Linux/2014-10/108647.htm
《Linux环境中gcc和g++的区别详解》https://www.linuxidc.com/Linux/2018-10/155027.htm
看完以上三篇文章可以了解到:
Linux是由芬兰人林纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的一种操作系统。而GNU计划是是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。1990年,GNU计划已经开发出的软件包括了一个功能强大的文字编辑器Emacs,C语言编译器GCC,以及大部分UNIX系统的程序库和工具。唯一依然没有完成的重要组件就是操作系统的内核,于是92年Linux与其他GNU软件结合,完全自由的操作系统正式诞生。

在不同的操作系统和编译器中,运行C和C++的编译器命令也不同,最常用的是GNU编译器和微软Visual Studio编译器(这里我们不作讨论)。然而GNU的g++和gcc有什么关系和区别呢?我们都知道在编译器运行我们的源文件时经过了:预处理、编译、汇编、连接4个过程,在运行C++程序时,用gcc在预处理时能生成.i文件,而在编译的时候会出现报错。总的来说g++是可以运行C、C++两种类型的源文件的,而gcc只能运行C语言的源文件。

对于C++源文件有两种命令方式执行:

$g++ -o prog1 prog1.cpp
$./prog1

-o prog1是编译器参数,制定了可执文件的文件名。此命令生成一个名为prog1的可执行文件(UNIX或Linux系统下没有后缀)。

$g++  prog1.cpp
$./a.out

省略-o prog1 系统编译生成一个名为a.out的可执行文件。

什么是GNU GNU项目提供 编辑器(EMACS)、编译器(GCC)、调试器(GDB)、汇编器、链接器、处理二进制文件的工具等等一系列构成operation system的必要组件。它创造了无数的重要的工具,例如:强健的编译器,有力的文本编辑器,甚至一个全功能的操作系统(除了operation system 的 kernel)Linux往往GNU一并被提起,Linux不属于GNU项目,但Linux满足GNU项目提出的标准GPL。GNU计划致力于开发一个自由并且完整的类Unix操作系统。 阅读详情

相关推荐

GCCGNUgcc与g++

3.2.1 编译程序加参数时生成调试信息​3.2.2 gdb常用调试命令3.2.2.1 启动与退出gdb 可执行程序quit/q。

qq_50610116的博客 2761

GNULinux之间关系

是现代操作系统的一个重要组成部分,它涉及到自由软件运动开源软件的发展。二者虽然经常被混为一谈,但实际上它们分别代表了不同的项目贡献。

zyqash的博客 1428

LinuxGNU是什么

Linux内核与GNU工具集合合,形成了广泛使用的操作系统,通常被称为GNU/Linux。1. 操作系统:GNU项目开发了一个名为GNU系统(GNU System)的操作系统,它包括了内核、shell、编程语言编译器、文本编辑器、文件系统等组件。5. GNU Hurd:GNU项目开发了自己的内核,称为Hurd,它是GNU系统的一部分,但Hurd的开发进度较慢,并没有广泛部署。3. GNU通用公共许可证(GPL):GNU项目开发了一种许可证,即GNU通用公共许可证,它允许软件以自由软件的形式分发使用。

qq_35902025的博客 2129

GNU 简单介绍(含glibc 源码下载)

GNU 简单介绍以及 glibc 源码下载地址。

lm_hao的专栏 2067

什么是GNUGNU/LinuxLinux有何区别

GNU工程的目标,是构建一个包括内核在内的操作系统生态。GNU工程也在开发一个操作系统内核,叫hurd,但是开发不是很顺利,后来Linus Torvalds编写一个类似Unix的内核(Linux) ,这样,整个操作系统的组件就齐全了,GNU/Linux操作系统就发布了。GNU工程一个巨大的工程:开发一整套操作系统,包括内核、编译器、调试器、开发工具、应用软件等,绝非一个人或一个团队所能完成的,因此在1985年10月,成立了自由软件基金会,它初期用来给GNU募集资金。GNUGNU Linux

oldboyedu1的博客 4299

LinuxGNU有什么关系

关注+星标公众号,不错过精彩内容素材来源 | 网络你平时阅读一些Linux感兴趣的博文,可能会遇到了一个有趣的名字:GNU/Linux。这些字母代表着什么意思,为什么人们总是将它们与Linux联系在一起呢?这个问题很简单,但答案却引发了Linux世界几十年来一直存在的争议。什么是 GNU/LinuxGNU/Linux是一个给自由开源操作系统的名称,我们通常称之为"Linux"。当用来指代通用操作...

strongerHuang 1541

Linux、GUN/Linux、GUN、GPL以及各个发行版本详细介绍-扫盲篇

什么是Linux?   也许很多人会不屑的说,Linux不就是个操作系统么。错!Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等。   既然Linux只是一个内核。那么我们通常所说的Linux操作系统又是什么?我们通常所说的Linux,指GNU/Linux,即采用Linux内核的GNU操作系统。是的,操作系统的实际名称是GNU。什么是GNUGNU代表GNU’s Not ..

xyz的专栏 4139

从0到1:GNU学习完全攻略

学习 GNU 是一场充满挑战与惊喜的技术探索之旅,它涵盖了丰富的知识强大的工具,从 GNU 的理念历史,到核心工具如 GCC、GDB Make 的深入应用,再到 GNU 编程风格项目开发流程的掌握,每一个环节都能让我们在软件开发领域更上一层楼。

大雨淅淅的博客 1847

编译原理及GNU使用笔记

编译原理简介 C/C++编译过程 GNU、Makefile、动态链接、静态链接、显式连接、隐式链接 gcc/g++使用方法,gcc命令参数

ZergWang's Blog 1621

GNUGCCgcc、g++

4.链接 将函数库中相应的代码组合到目标文件中,汇编文件系统库文件链接起来,生成在特定平台可执行的程序。3.汇编 将汇编文件变成可执行的二进制文件 .s文件-->.o文件。2.编译 将文件编译成汇编文件 .i文件-->.s文件。g++ c++语言编译器,也可以编译c语言,在编译c语言的时候会自动调用gccGCC 英文缩写,意思是GNU的编译器集合。

ttxiaoxiaobai的博客 1816

GPL前世今生,什么是GPL/GNU?为什么如此重要?

从事Linux开发的朋友一定都听过GPL,那么到底什么是GPL呢?他有什么作用呢?本文给大家做详细讲解。 什么是GPL 历史 作用

一口Linux的专栏 4864

Linux有关知识补充

一、GNU 这是一个操作系统项目,名字是一个递归的GNU’s Not Unix! 的缩写。 Unix 系统被发明之后,大家用的很爽。但是后来开始收费商业闭源了。一个叫 RMS 的大叔觉得很不爽,于是发起 GNU 计划,模仿 Unix 的界面使用方式,从头做一个开源的版本。然后他自己做了编辑器 Emacs 编译器 GCCGNU 是一个计划或者叫运动。在这个旗帜下成立了 FSF,起草了 GPL 等。 接下来大家纷纷在 GNU 计划下做了很多的工作项目,基本实现了当初的计划。包括核心的 gcc g

kking_edc的博客 499

GNULinux关系Linux的发行版本、CentOsRedHat的区别

GNULinux关系Linux的发行版本、CentOsRedHat的区别

老照片 3327

一文搞懂什么是 GNU/Linux 操作系统

一文搞懂什么是 GNU/Linux 操作系统。

RAB 2872

GNU与开源:塑造数字世界的自由基石

GNU,全称为“GNU's Not Unix”,是一个旨在开发自由操作系统及其应用程序的项目。它不仅仅是一个软件集合,更是一种哲学理念,强调软件的自由使用修改权,反对软件的私有化商业化控制。GNU项目的核心目标是创建一个完全自由的Unix兼容系统,即GNU系统,该系统由一系列自由软件组成,用户可以自由地获取、使用、修改分发。运行自由:用户有权根据自己的需求运行软件,不受任何限制。研究自由:用户有权研究软件的工作原理,了解其内部机制。修改自由:用户有权根据需要对软件进行修改,以适应特定需求。

CloudJourney的博客 1716

GNULinuxGNU/Linux之间关系

结论 我们常说的Linux,准确地来讲,应该是叫“GNU/Linux GUN https://www.gnu.org/ 百度百科 https://baike.baidu.com/item/GNU操作系统/9596381 wiki https://en.wikipedia.org/wiki/GNU 以下转自 http://os.51cto

icycolawater的专栏 4883

GNUGCC、g++、MinGW、MSVC】上

本文系统梳理了GNUGCC、g++等核心概念。

CSDN_RTKLIB的博客 1519

GNU到底是什么,与UnixLinux是什么关系

GNU是自由软件运动的基石,其工具链理念深刻影响了现代计算生态。虽然完整的GNU操作系统未实现,但“GNU/Linux”已成为服务器、嵌入式设备开发者环境的主流选择。理解GNU有助于认识开源文化的起源软件自由的价值观。,由理查德·斯托曼(Richard Stallman)于1983年发起,目标是创建一个完全由自由软件组成的类Unix操作系统。它的名字是一个递归缩写,全称为。(GNU不是Unix),既致敬了Unix的设计理念,又强调了其独立性自由性。(发音为 /ɡnuː/,类似“革奴”)是一个。

Tipriest的博客 2311
上一篇: Mac电脑 android studio真机调试操作步骤
下一篇: 【Unity/AR/Android】Unity中配置EasyAR开发环境
Kaia_L
博客等级 码龄9年 5粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值