gcc 和 g++ 的区别
gcc
和 g++
是 GNU 编译器集合(GNU Compiler Collection,简称 GCC)中的两个不同命令,用于编译 C 和 C++ 代码。尽管它们都属于同一个编译器集合,但在处理 C 和 C++ 代码时有一些重要的区别。
主要区别
默认语言处理:
gcc
:主要用于编译 C 语言代码。对于文件扩展名为.c
的源文件,gcc
会将它们作为 C 代码处理。g++
:主要用于编译 C++ 语言代码。对于文件扩展名为.cpp
、.cxx
、.cc
等的源文件,g++
会将它们作为 C++ 代码处理。
链接阶段行为:
gcc
:在链接阶段不会自动链接 C++ 标准库。如果你需要编译和链接 C++ 代码,你需要手动指定链接 C++ 标准库。g++
:在链接阶段会自动链接 C++ 标准库。使用g++
编译和链接 C++ 代码时,无需手动指定链接 C++ 标准库。
文件名扩展名的处理:
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++ 的区别的更多相关文章
- Linux - gcc和g++的区别
一般linux系统都自带了gcc编译器的,你可以用你的安装光盘去安装,如果你是觉得自带的gcc版本太低了,可以去gcc的官方网站可以下载到,编译需要很长的时间,如果你只编译C或者C++可以只下载gcc ...
- 【转载】gcc和g++的区别
[说明]本文转载自 静心 的文章 http://blog.163.com/lu_jun520/blog/static/5699613420116205148239/ 一般linux系统都自带了gcc编 ...
- gcc和g++的区别【转自中国源码网】
gcc和g++的区别[转自中国源码网] gcc和g++都是GNU(组织)的一个编译器. 误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是 ...
- linux中gcc和g++的区别
1.两者都是编译器 2.gcc编译c语言:g++既可以编译c语言,也可以编译c++语言 3.gcc不能自动链接库文件,一般用g++来链接库文件,非要用gcc的话,一般使用gcc -lstdc++命令 ...
- gcc 与 g++的区别
原文: http://www.cnblogs.com/wb118115/p/5969775.html ------------------------------------------------- ...
- 【C/C++】Linux的gcc和g++的区别
Windows中我们常用vs来编译编写好的C和C++代码:vs把编辑器,编译器和调试器等工具都集成在这一款工具中,在Linux下我们能用什么工具来编译所编写好的代码呢,其实Linux下这样的工具有很多 ...
- 结合python版本安装python-devel gcc和g++的区别 安装前做yum搜索
[test@ecs autocloudservices]# yum install python-develLoaded plugins: fastestmirrorLoading mirror sp ...
- gcc 与g++的区别
原文 http://www.cnblogs.com/wb118115/p/5969775.html 什么是gcc / g++ 首先说明:gcc 和 GCC 是两个不同的东西 GCC:GNU Compi ...
- gcc和g++的区别:安装、版本、编译(转)
用以下命令: yum install gcc 安装的只有gcc,而不会安装g++.gcc是编译器合集,而gcc-g++或简称g++则是C++编译器.gcc成为了编译器的选择器.gcc通过识别被编译的源 ...
- gcc与g++的区别
一:gcc与g++比较 编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而 c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确, ...
随机推荐
- UML建模、设计原则
# UML统一建模语言 定义: 用于软件系统设计与分析的语言工具 目的: 帮助开发人员更好的梳理逻辑.思路 官网: https://www.omg.org/spec/UML 画图工具可以用在线网址:h ...
- Spark3学习【基于Java】2. Spark-Sql核心概念
SparkSession 从Spark2开始,Spark-SQL引入了SparkSession这个核心类,它是处理DataSet等结构数据的入口.在2.0之前,使用的是spark-core里的Spar ...
- win10彻底关闭windows defender,解决无故占用大量CPU问题
win10彻底关闭defender的方法 首先右键开始菜单按钮,点击"运行",输入"gpedit.msc",打开"本地组策略编辑器". 依次 ...
- 在MoneyPrinterPlus中使用本地chatTTS语音模型
之前MoneyPrinterPlus在批量混剪,一键AI生成视频这些功能上的语音合成功能都用的是云厂商的语音服务,比阿里云,腾讯云和微软云. 云厂商虽然提供了优质的语音服务,但是用起来还是要收费. 为 ...
- oeasy教您玩转vim - 4 - # 深入帮助
深入帮助 回忆上节课内容 上次制作了 oeasy.txt 用 vim oeasy.txt 打开了文件 :f[ile] 查询了当前文件 的信息 从 正常模式或命令模式(Normal mode) 切换到 ...
- CF369D Valera and Fools 题解
题目链接 Luogu Codeforces 题意简述 有 \(n\) 个人站成一排,每人手中有 \(k\) 发子弹,每次每人会向除自己外编号最小的人开枪,第 \(i\) 个人开枪的命中率为 \(p_i ...
- java中的Context
在java编程中,上下文(Context)是指程序运行时的环境和状态的集合.包括了类对象变量方法等运行时的相关数据 在类中,我们可以通过this获取当前类的变量.方法的上下文, 例如getset方法: ...
- 【Lodop】02 C-Lodop手册阅读上手
版本:4.0.6.2 一.概述 C-Lodop云打印是一款精巧快捷的云打印服务产品,以Lodop功能语句为基础,JS语句实现远程打印 移动设备+Wifi+普通打印机+集中打印 C-Lodop对客户端浏 ...
- [VS Code扩展]写一个代码片段管理插件(一):介绍与界面搭建
@ 目录 VS Code扩展机制 项目搭建 创建UI元素 活动栏按钮 主边栏视图 主边栏工具栏按钮 侧边栏右键菜单 编辑器右键菜单 项目地址 [VS Code扩展]写一个代码片段管理插件(一):介绍与 ...
- 【转载】 EdgeX Foundry试运行
原文地址: https://www.cnblogs.com/charlieroro/p/14843335.html ========================================== ...