GNU

GNU简介

GNU是一个自由的操作系统,其内容软件完全以GPL方式发布。这个操作系统是GNU计划的主要目标,名称来自GNU’s Not Unix!的递归缩写,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。
该系统的基本组成包括GNU编译器套装(GCC)、GNU的C库(glibc)、以及GNU核心工具组(coreutils),另外也是GNU除错器(GDB)、GNU二进制实用程序(binutils)的GNU Cashshell中和GNOME桌面环境。GNU开发人员已经向GNU应用程序和工具的Linux移植,现在也广泛应用在其它操作系统中使用,如BSD变体的Solaris,和OS X作出了贡献。

GCC&G++


gcc and g++分别是GNU的c & c++编译器。

gcc/g++在执行编译的时候一般有下面4步:


⒈预处理,生成.i的文件[预处理器cpp]

⒉将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]。

⒊由汇编变为目标代码(机器代码)生成.o的文件[汇编器as]。

⒋连接目标代码,生成可执行程序[链接器ld]。

GCC/G++的区别

G++&GCC 在编译不同类型文件时会有所不同.
GCC在编译.c文件时会视其为.c文件,编译.cpp文件时,视其为.cpp文件。
G++在编译.c和.cpp文件时都视其为.cpp文件。

但要注意的是,GCC在编译.cpp文件时并不会自动调用链接c++的库,你需要手动链接,命令如下:
gcc -l stdc++ hello.cpp

常用命令

-c
只执行预处理、编译、汇编,也就是把程序做成obj文件,后缀名为.o
gcc -c hello.c

-S
注意,这里是大写S,只执行预处理和编译,也就是把文件编译成汇编代码,生成后缀名为.s的汇编代码。
gcc -S hello.c

-o
制定目标名称,默认的时候,GCC编译出来的文件是a.out,如果不喜欢,可以蹂躏它,使用方法如下:
gcc -o hello.cxk hello.c

最后这个命令无任何参数,直接生成a.out
gcc hello.c

要执行生成的程序,使用如下命令
./a.out

Linux下使用GCC/G++

使用以下命令即可安装:
sudo apt-get install gcc————安装GCC
sudo apt-get install g++————安装G++

使用touch命令生成一个名为test.cpp的文件
touch test.cpp
之后使用vim编辑该文件
vim test.cpp
输入i进入编辑模式,输入以下代码:

1
2
3
4
5
6
7
#include<iostream>
using namespace std;
int main()
{
cout<<"Successful"<<endl;
return 0;
}

按ESC键,然后输入 “ :wq“即可保存退出。
最后编译生成并执行文件

1
2
g++ test.cpp
./a.out

successfulimg

Motivation time:

读书是易事,思索是难事,但两者缺一,便全无用处——富兰克林

真正的科学家应当是个幻想家;谁不是幻想家,谁就只能把自己称为实践家——巴尔扎克

  • © 2015-2019 VicenteSWL
  • Hexo Theme Ayer by shenyu
    • PV:
    • UV: