`
kongweile
  • 浏览: 521481 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

gcc编译c++程序

 
阅读更多

原来一直以为gcc是c的linux下的编译器,g++是c++的linux下的编译器,今天偶尔看到一个说明文档,大体内容是gcc已经不单纯的可以编译C语言,它支持C, C++, Objective-C, Fortran, Java, Ada的编译,如果不指名编译语言,默认由后缀名决定。感觉好神奇,就亲自想用gcc来编译一个c++的helloworld。步骤如下:

 

1.用vim直接打开hello.cpp,编译一个简单的hello world,用:wq命令保存,退出。

 

2.直接最简单的默认命令gcc hello.cpp, 哦,竟然报错 gcc: error trying to exec 'cc1plus' ...,我刚编译了一个c的程序,gcc编译器肯定能用的,难道gcc不能编译c++,不会哦,官方文档应该不会有错。于是上网搜了一下,说报错的原因是因为Ubuntu虽然默认安装了gcc编译器但是并没有安装所有的C语言的类库和工具,那就安装吧, 命令: sudo apt-get install build-essential 安装完成。

 

3.按向上键或者重新写一下 gcc hello.cpp,晕咯,这次报错报的更多,如下/tmp/cc0jIPMU.o: In function `main':

 

hello.cpp:(.text+0x14): undefined reference to `std::cout'

hello.cpp:(.text+0x19): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'

hello.cpp:(.text+0x21): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)' ...

简直要晕死了,这次又Google,最后的解释是虽然gcc可以用来编译c++但是它不会自动的调用链接c++的库,你需要自己手动链接,使用如下命令:gcc -l stdc++ hello.cpp,顺利编译通过,使用./a.out查看,打印出hello world,成功。

 

4.最后说明一下用g++可以很方便的完成,完全是画蛇添足。

分享到:
评论

相关推荐

    gcc编译C++共享库/静态库供C调用的简单例子

    C++编写的共享库,用gcc编译连接,分别生成.so和.a,C编写的main,用gcc编译,连接.so和.a调用的简单例子

    linux下GCC编译C程序

    【GCC编译C程序】是Linux环境中开发C语言软件的核心环节。GNU编译器集(GCC),最初称为GNU C编译器,由Richard Stallman在1987年发起,旨在构建符合自由软件理念的编译器,用于构建GNU项目中的其他软件。GCC很快因...

    gcc-c++依赖库,centos7可用依赖库

    这些依赖库对于编译C++程序至关重要,因为它们提供了必要的功能和接口,使得开发者可以构建、链接和执行C++代码。以下是关于GCC-C++在CentOS 7上所需依赖库的详细解析: 1. **GLIBC (GNU C Library)**:这是Linux...

    【离线安装包】gcc-c++.zip

    例如,创建一个简单的C++程序,如`hello.cpp`,然后尝试编译它: ```cpp // hello.cpp #include int main() { std::cout , World!" ; return 0; } ``` 然后运行: ``` g++ hello.cpp -o hello ./hello ``` 如果...

    离线安装GCC与GCC-C++

    GCC(GNU Compiler Collection)是GNU项目的一部分,它是一个开源的编译器套件,主要用于C、C++、Objective-C、Fortran、Ada以及Go等编程语言的编译。GCC不仅提供编译器,还包括预处理器、链接器和其他相关工具,...

    如何在Linux下用gcc编译c程序

    对于初学者或专业人士而言,掌握如何在Linux环境下使用gcc编译C程序是至关重要的。下面我们将详细探讨这个过程及其相关知识点。 首先,要开始编译C程序,你需要确保你的Linux系统已经安装了GCC。你可以通过运行`gcc...

    gcc-c++.zip

    GCC中的C++编译器,也称为g++,用于将源代码转换为可执行程序。它包括预处理器cpp、编译器cc1plus、汇编器as以及链接器ld等多个组件。安装GCC C++通常需要解决一系列依赖问题,例如库文件、头文件和相关的开发工具。...

    gcc-c++工具rpm 安装包

    标题中的“gcc-c++工具rpm安装包”指的是在Linux系统中用于编译C++程序的GNU Compiler Collection (GCC) 的rpm格式安装包。GCC不仅支持C++,还支持C、Fortran、Ada和Go等多种编程语言,但在这里我们主要关注其C++...

    CentOS 7 安装 gcc-c++ 所需要的 rpm 包

    安装完GCC-c++后,你可以开始编写和编译C++代码。例如,创建一个名为`hello.cpp`的源文件,内容如下: ```cpp #include int main() { std::cout , World!" ; return 0; } ``` 然后,使用g++编译器将源文件编译...

    gcc、gcc+编译离线文件

    在使用GCC编译C++程序时,我们通常需要指定`-c`选项来编译为对象文件,`-o`选项来指定输出文件名,以及`-g`选项来包含调试信息。例如: ```bash gcc -c main.cpp -o main.o -g ``` 然后,用`-l`选项链接所需的库,...

    GCC编译器for c++

    2. **C++源文件编译过程**:GCC编译C++程序一般涉及预处理、编译、汇编和链接四个步骤。预处理阶段处理#include指令,宏替换等;编译阶段将预处理后的源代码转换为汇编代码;汇编阶段将汇编代码转化为机器码;链接...

    gcc-c++ 4.8.5(CentOS7内置版本安装包)

    7. libstdc++-devel-4.8.5-39.el7.x86_64.rpm:C++标准库的开发包,包含了编译C++程序所需的头文件和库。 8. openssl-libs-1.0.2k-19.el7.x86_64.rpm:OpenSSL的运行时库,用于提供安全通信的加密功能。 9. glibc-...

    gcc -c++ 4.4.7.zip

    **使用GCC编译C++程序** 1. **预处理阶段**:GCC首先进行预处理,处理宏定义、条件编译指令(如`#ifdef`)以及包含其他源文件的指令(如`#include`)。 2. **编译阶段**:预处理后的结果被转换为汇编代码,这是...

    gcc和gcc-c++离线安装包

    从mini安装版centos7.5提取出来的gcc和gcc-c++安装包,下载后放到服务器解压,并cd到该目录,执行 rpm -Uvh *.rpm,安装完成后,运行gcc -v,g++ -v,会出现版本信息,则完成

    centos7离线安装gcc-c++

    centos7离线安装gcc-c++

    gcc-c++ 及所需依赖 rpm安装包

    GCC-c++则是GCC中专门针对C++语言的编译器组件,用于将C++源代码编译为可执行程序。在Linux环境中,GCC-c++是开发C++应用程序不可或缺的工具。 RPM(Red Hat Package Manager)是一种软件包管理器,广泛应用于基于...

    gcc、gcc-c++安装包及依赖包4.4.7-23

    GCC(GNU Compiler Collection)是GNU项目的一部分,是一个开源的、跨平台的编译器套件,用于将源代码编译成可执行程序。它不仅包括C编译器(gcc),还包括C++(g++)、Objective-C、Fortran、Ada和其他语言的编译器...

    centos 7.5 gcc-c++ 离线资源包

    如果是.tar.gz格式,需要解压后进入目录,然后运行`./configure --prefix=/usr/local/gcc`配置,接着运行`make && make install`进行编译和安装。 5. **配置环境变量**:安装完成后,可能需要更新系统的PATH环境...

    centos7.9 gcc和gcc-c++所需依赖

    GCC是一套集成了C、C++、Fortran、Objective-C等语言编译器的工具集合,而GCC-C++则专注于C++的编译。在离线环境下安装这些组件,你需要确保获取所有必要的依赖项,因为CentOS的默认软件仓库可能不包含最新的版本。...

    gcc-c++ rpm 安装包

    非常罕见的gcc-c++ rpm安装包,不用编译

Global site tag (gtag.js) - Google Analytics