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++,一时也不知哪个说法正确, ...
随机推荐
- Asp .Net Core 系列:基于 Castle DynamicProxy + Autofac 实践 AOP 以及实现事务、用户填充功能
目录 什么是 AOP ? .Net Core 中 有哪些 AOP 框架? 基于 Castle DynamicProxy 实现 AOP IOC中使用 Castle DynamicProxy 实现事务管理 ...
- podman+openresty+openssl,https双向认证demo测试
前言 暂不讨论https原理,单论配置的话: 1. https单项认证 server: server.crt + server.key client: server_ca.crt 2. https双向 ...
- Mysql通过frm和ibd恢复数据库
昨天的考试过程中,有个考点的服务器蓝屏重启后发现Mysql启动不了(5.6.45 x32版本,使用innoDB),重装后无法加载原数据库记录,通过查询资料,通过frm和idb文件成功恢复了数据库记录. ...
- 解决方案 | cvxpy成功安装过程及其使用攻略
背景: 由于需要研究KKT条件下的最优化问题,需要安装一个python的包cvxpy. 过程: 1.正常pip install cvxpy 不可取(不会成功,中间有报错): 2.主要错误在于:其依赖 ...
- centos7安装pcntl扩展
查看PHP扩展加载的目录php -i | grep extension_dir Centos下使用yum安装php默认是都不带pcntl扩展,需要安装扩展需要下载安装包,编译安装. 首先查看你的服务器 ...
- SQL去重distinct方法解析
来源:https://www.cnblogs.com/lixuefang69/p/10420186.html SQL去重distinct方法解析 一 distinct 含义:distinct用来查询不 ...
- 学习笔记--区分Java中类与对象
区分Java中类与对象 你能接受 String 吗? 如果能,以下内容可进行类比 编写 User 类 public class User{ // 用户编号 // int 是一种基础数据类型 // id ...
- Pandas库学习笔记(5)---Pandas Panel
Pandas Panel Pandas Panel基本操作 Panel数据3D容器. 术语 Panel data 源自计量经济学,名称来之于pandas − pan(el)-da(ta)-s. 3个轴 ...
- Django 继承AbstractUser扩展用户模型
Django 继承AbstractUser扩展用户模型 by:授客 QQ:1033553122 测试环境 Win 10 Python 3.5.4 Django-2.0.13.tar.gz 官方 ...
- HCIA first
每台电脑都有网线 网线连的是什么? 网线插在接入交换机 流量给入汇聚交换机 汇聚给核心交换机 核心交换机 堆叠是指将一台以上的交换机组合起来共同工作,以便在有限的空间内提供尽可能多的端口.多台交换机经 ...