踩坑之路-linux系统c++的编译与运行(gcc与g++的区别)

723 阅读1分钟

Hello World

使用vim helloworld.cpp命令新建一个文件:

#include <iostream>
using namespace std;
int main() {
	cout << "Hello world" << endl;
    return 0;
}

g++安装

首先使用命令查看我们的linux服务器上是否安装了g++

$ g++ -v

显示结果为:
-bash: g++: command not found 尝试查看gcc版本

$ gcc -v

发现是有安装过的,最后一行显示
gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)

g++和gcc的区别

gcc的最开始只是针对c语言的编译器,其全名为GNU C Compiler
后来gcc项目集成了很多种语言,就变成了各种编译器的集合
g++是gcc下将默认语言设置为c++语言的特殊版本的编译器,链接时它会自动使用c++标准库而不是c语言标准库,所以我们可以指定gcc链接c++标准库

$ gcc helloworld.cpp -lstdc++ -o helloworld

但是会发现还是报错
gcc: error trying to exec 'cc1plus': execvp: No such file or directory 我们尝试安装g++

sudo agt-get install g++

但是会报错说找不到apt-get指令 查询后发现debian/ubunta系统使用上述指令,而我们使用的是centOS,应该使用

yum install -y gcc-c++

等待安装成功后我们继续尝试执行:

$ gcc helloworld.cpp -lstdc++ -o helloworld

没有报错
查看当前目录,除了helloworld.cpp文件外多了一个helloworld文件
这是一个可执行文件我们直接执行,但是由于没有配置全局变量所以我们要加./

./helloworld

成功执行,在命令行答应了Hello world出来

上述gcc代码等价于使用g++命令

g++ helloworld.cpp -o helloworld

这里的-o参数代表的是指定可执行文件的文件名