gccg++ 是 GNU 编译器集合(GNU Compiler Collection,简称 GCC)中的两个不同命令,用于编译 C 和 C++ 代码。尽管它们都属于同一个编译器集合,但在处理 C 和 C++ 代码时有一些重要的区别。

主要区别

  1. 默认语言处理

    • gcc:主要用于编译 C 语言代码。对于文件扩展名为 .c 的源文件,gcc 会将它们作为 C 代码处理。
    • g++:主要用于编译 C++ 语言代码。对于文件扩展名为 .cpp.cxx.cc 等的源文件,g++ 会将它们作为 C++ 代码处理。
  2. 链接阶段行为

    • gcc:在链接阶段不会自动链接 C++ 标准库。如果你需要编译和链接 C++ 代码,你需要手动指定链接 C++ 标准库。
    • g++:在链接阶段会自动链接 C++ 标准库。使用 g++ 编译和链接 C++ 代码时,无需手动指定链接 C++ 标准库。
  3. 文件名扩展名的处理

    • gcc:对于 .c 文件,会将其视为 C 代码进行编译。对于其他扩展名(如 .cpp、.cxx),需要使用 -x 选项指定语言类型。
    • g++:对于 .cpp、.cxx、.cc 文件,会将其视为 C++ 代码进行编译。对于 .c 文件,会将其视为 C++ 代码进行编译。

示例

使用 gcc 编译 C 代码

假设有一个简单的 C 程序 hello.c

#include <stdio.h>

int main() {
printf("Hello, C World!\n");
return 0;
}

编译和运行:

gcc hello.c -o hello
./hello

输出:

Hello, C World!

使用 g++ 编译 C++ 代码

假设有一个简单的 C++ 程序 hello.cpp

#include <iostream>

int main() {
std::cout << "Hello, C++ World!" << std::endl;
return 0;
}

编译和运行:

g++ hello.cpp -o hello
./hello

输出:

Hello, C++ World!

使用 gcc 编译 C++ 代码(需要手动链接 C++ 标准库)

也可以使用 gcc 编译 C++ 代码,但需要手动指定链接 C++ 标准库:

gcc hello.cpp -o hello -lstdc++
./hello

gcc 和 g++ 的区别的更多相关文章

  1. Linux - gcc和g++的区别

    一般linux系统都自带了gcc编译器的,你可以用你的安装光盘去安装,如果你是觉得自带的gcc版本太低了,可以去gcc的官方网站可以下载到,编译需要很长的时间,如果你只编译C或者C++可以只下载gcc ...

  2. 【转载】gcc和g++的区别

    [说明]本文转载自 静心 的文章 http://blog.163.com/lu_jun520/blog/static/5699613420116205148239/ 一般linux系统都自带了gcc编 ...

  3. gcc和g++的区别【转自中国源码网】

    gcc和g++的区别[转自中国源码网] gcc和g++都是GNU(组织)的一个编译器. 误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是 ...

  4. linux中gcc和g++的区别

    1.两者都是编译器 2.gcc编译c语言:g++既可以编译c语言,也可以编译c++语言 3.gcc不能自动链接库文件,一般用g++来链接库文件,非要用gcc的话,一般使用gcc -lstdc++命令 ...

  5. gcc 与 g++的区别

    原文: http://www.cnblogs.com/wb118115/p/5969775.html ------------------------------------------------- ...

  6. 【C/C++】Linux的gcc和g++的区别

    Windows中我们常用vs来编译编写好的C和C++代码:vs把编辑器,编译器和调试器等工具都集成在这一款工具中,在Linux下我们能用什么工具来编译所编写好的代码呢,其实Linux下这样的工具有很多 ...

  7. 结合python版本安装python-devel gcc和g++的区别 安装前做yum搜索

    [test@ecs autocloudservices]# yum install python-develLoaded plugins: fastestmirrorLoading mirror sp ...

  8. gcc 与g++的区别

    原文 http://www.cnblogs.com/wb118115/p/5969775.html 什么是gcc / g++ 首先说明:gcc 和 GCC 是两个不同的东西 GCC:GNU Compi ...

  9. gcc和g++的区别:安装、版本、编译(转)

    用以下命令: yum install gcc 安装的只有gcc,而不会安装g++.gcc是编译器合集,而gcc-g++或简称g++则是C++编译器.gcc成为了编译器的选择器.gcc通过识别被编译的源 ...

  10. gcc与g++的区别

    一:gcc与g++比较 编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而 c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确, ...

随机推荐

  1. python基础-集合set { }

    集合的定义和操作 集合的特性: 元素数量 支持多个 元素类型 任意 下标索引 支持 重复元素 不支持 可修改性 支持 数据有序 否 使用场景 不可重复的数据记录场景 # 定义集合 my_set = { ...

  2. rem适配布局

    没有一张图解决不了的事 https://www.processon.com/mindmap/5e3a589be4b021dc2899f511 <link rel="stylesheet ...

  3. mac idea 更换主题

    使用 主题一 xcode-dark-theme:点我直达 主题二 one-dark-theme:点我直达 主题三 dark-purple-theme:点我直达 主题四(推荐) vuesion-them ...

  4. yb课堂之高并发项目必备利器之分布式缓存和本地缓存 《十九》

    什么是缓存? 程序经常要调用的对象存储在内存中,方便其使用时可以快速调用,不必去数据库或者其他持久化设备中查询,主要就是提高性能 DNS.前端缓存.代理服务器缓存Nginx.应用程序缓存(本地缓存.分 ...

  5. AI驱动音乐创新,网易数帆X云音乐刷新MIREX世界纪录 网易数帆 网易数帆

    在近期揭榜的2021国际音频检索评测大赛(MIREX)上,网易数帆易智语音团队携手网易云音乐音视频实验室,凭借生产级AI技术创新能力,在歌词识别和歌单识别两个赛道大幅打破世界纪录夺得冠军. MIREX ...

  6. linux系统是未来_大小写敏感_case_sensitive_编程原生态

    修改 py 文件 回忆上次内容 上次尝试了 两个vim 同时打开 同一py文件 vim出现了Error 有各种选择     错误拼写 pront 导致 运行时 出现了NameError         ...

  7. 【ue源码】定制-蓝图部分

    今天在更新UE的伤害系统的时候出现了一个问题: 多个地方频繁调用一个函数,而这个函数肯定做优化,具体就是,把对应数据放入到队列,另外一个地方慢慢消费这个队列, 那么问题出现了,我使用的UE只有Sing ...

  8. Spring 常用的三种拦截器详解

    前言 在开发过程中,我们常常使用到拦截器来处理一些逻辑.最常用的三种拦截器分别是 AOP. Interceptor . Filter,但其实很多人并不知道什么时候用AOP,什么时候用Intercept ...

  9. electron安装成功记录

    1.登录官网查看当前最新版本对应的node,注意这里不要看php那个汉化的,他那个是老版本的,node对不上 2.nvm安装一个新的node 3.使用cnpm安装(npm安装还是报错了,记得删node ...

  10. windows生成苹果私钥证书p12证书和profile文件的方法

    hbuilderx出现已经有差不多10年时间了,现在越来越多的企业,开始使用跨平台性更优秀的uniapp来开发ios app. 开发ios app的时候,打包需要苹果的私钥证书和证书profile文件 ...