Ubuntu---gcc && g++
摘要:今天用 gcc 编译 c++ 代码,发现会报错:std::cout 这个函数无定义,所以决定查一下原因,在这里总结一下,虽然以后回头看一定会觉得太菜,但是新手期还是总要经历的一个阶段,所以就记录下来。
1,什麽是 gcc / g++
首先说明:gcc 和 GCC 是两个完全不同的东西
GCC:GUN Compiler Collection(GUN 编译器集合),它可以编译 C,C++,Object-C等语言。
gcc 是 GUN C Compiler (C 编译器)
g++ 是 GUN C++ Compiler (C++ 编译器)
一个本质事实是,就本质而言,gcc 和 g++ 并不是编译器,而是一种驱动器,根据参数中要编译的文件类型,调用对应的 GUN 的编译器而已,比如,用 gcc 编译一个 .c 文件的话,会有一下几个步骤:
step1:Call a preprocessor, like cpp.
step2:Call an actual compiler, like cc or cc1.
step3:Call an assembler, like as.
step4:Call a linker, like ld.
由于编译器是可以更换的,所以 gcc 不仅仅可以编译 C 文件,所以更准确的说:gcc 调用的是 C Compiler,而 g++ 调用了 C++ compiler。
2,gcc 和 g++ 的主要区别
a,对于 *.c 和 *.cpp 文件,gcc 分别当作 c 和 cpp 文件编译
b,对于 *.c 和 *.cpp 文件,g++ 则统一当作 cpp 文件编译
c,在使用 g++ 编译文件时,g++ 会自动链接标准库STL,而 gcc 不会
d,在用 gcc 编译 c++ 文件时,为了能使用STL,需要加参数 -lstdc++ ,但这并不代表 gcc 和 g++ 等价,它们的区别不仅仅是这个。
$ gcc hello.cpp -lstdc++ -o hello
3,主要参数
-g : turn on debugging(so GDB gives morefriendly output)
-Wall : returns on most warnings
-O or -O2 : turn on optimizations
-o : name of the output file
-c : output an object file (.o)
-L : specify an includedirectory
-l : link with librarylib.a
参考博客:https://www.cnblogs.com/oxspirt/p/6847438.html
Ubuntu---gcc && g++的更多相关文章
- ubuntu 14.04 更新 gcc/g++ 4.9.2
ubuntu 14.04 更新 gcc/g++ 4.9.2 最近看到c++11非常的好用,尤其是自带了regex,于是稍微学了一下c++11的新特性.可是我在编译一个regex程序是却发现稍微复杂一点 ...
- UBUNTU 下如何升级 gcc, g++
正如大家所知道的GCC并不支持"make uninstall". 一种推荐安装方式就是把GCC 安装在你自己指定的一个路径,当你不须要某个GCC版本号的时候你仅仅须要移除相应版本号 ...
- ubuntu下安装低级版本gcc/g++ 并随意切换
来自:http://blog.sina.com.cn/s/blog_6cee149d010129bl.html 发现Android的版本中编译Host的程序经常因为本机的Gcc版本过高,需要这样那样的 ...
- ubuntu 16.04 更新 gcc/g++ 4.9.2
ubuntu 转载 2016年10月12日 :: 标签:ubuntu /g++ /gcc [html] view plain copy sudo dpkg -l g++ 最近在学C++primer , ...
- ubuntu 14.04 gcc/g++版本降低
Matlab 2014a支持的gcc/g++版本是4.7x,而ubuntu 14.04以及更高版本默认安装的版本都是4.8及以上,因此需要降低gcc/g++版本,方法如下: 1 安装 $ sudo a ...
- Ubuntu install g++
We can use two ways to install g++ on Ubuntu. 1. a. sudo apt-get install make gcc g++. b. sud ...
- Windows Sublime Text 配置Linux子系统(WSL)下的 gcc/g++ 编译环境
0. 简介(若已了解背景可以跳过此部分) Windows 10 Build 14316以上版本中加入了"Windows系统的Linux子系统"(Windows Subsystem ...
- gcc/g++多版本切换 (ubuntu18.04)
使用Ubuntu18.04已经有一段时间了,在使用过程中经常需要处理不同软件的编译工作,但是这时候就遇到这样一个问题,那就是不同软件,甚至是同一个软件的不同版本都会使用不同版本的gcc/g++来进行编 ...
- Ubuntu安装g++命令
Ubuntu安装g++ sudo apt-get install make gcc g++ 再装上函数手册 sudo apt-get install manpages-dev 或者采用 sudo ap ...
- CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update.... yum install 或者 添加y ...
随机推荐
- python文件管理小计
1.读取只当路径下所有文件和文件夹 import os def file_name(file_dir): for root, dirs, files in os.walk(file_dir): pri ...
- Linux系统编程——Daemon进程
目录 Daemon进程介绍 前提知识 Daemon进程的编程规则 Daemon进程介绍 Daemon运行在后台也称作"后台服务进程". 它是没有控制终端与之相连的进程.它独立与控制 ...
- Java读取Excel并与SqlServer库中的数据比较
先说说需求.在SQL server数据库中的表里存在一些数据,现在整理的Excel文档中也存在一些数据,现在需要通过根据比较某个字段值(唯一)来判断出,在库中有但excel中没有的数据. 大概的思路就 ...
- 第三方deepvoice3_pytorch安装使用
项目地址:https://github.com/r9y9/deepvoice3_pytorch 解决两个问题:一使用外部数据集训练,二加载pre-trained模型做fine-tune 1:安装必要依 ...
- ESP32 做Web服务器 http Server步骤
资料不多.多是国外网站的. 百度搜基本出来的是这个网站https://www.dfrobot.com/blog-922.html 出来的代码是: #include <WiFi.h>#inc ...
- jenkins部署前后端分离的vue项目
1 General Name: 变量名. 类似给分支起一个名字的意思, 可随意取 Description: 描述, 非必填 Parameter Type: 选择 Branch or Tag Defau ...
- C#验证ip地址的代码
如下的代码是关于C#验证ip地址的代码. public Boolean CheckIPValid(String strIP) { char chrFullStop = '.'; string[] ar ...
- Oracle中文排序问题
默认感觉中文是按拼音排序,如果没实现效果,请加上其它排序,例如日期 表名为 dept ,其中name字段是中文,下面分别实现按照单位名称的笔划.部首和拼音排序.1: //按照笔划排序2: select ...
- LinuxMint 下 B站 番 blv 缓存 转 mp4
参考https://www.littleqiu.net/archives/886 (不过我使用绝对路径,ffmpeg报错,相对路径没问题) 一.安装ffmpge sudo apt-get instal ...
- vue简单的导航栏
<style> img{ display:block; margin:0 auto; width:500px; height:500px; } #app li{ list-style: n ...