type
status
date
slug
summary
tags
category
icon
password
Property
C++
和C语言类似,也要经过编译和链接后才能运行C语言源文件的后缀非常统一,在不同的编译器下都是
.c
。C++
源文件的后缀则有些混乱,不同的编译器支持不同的后缀:g++ 命令
在C语言中,使用
gcc
命令来编译和链接C程序,例如编译单个源文件:编译
C++
程序时,gcc
命令也可以使用,不过要增加-lstdc++
选项,否则会发生链接错误:gcc
命令在链接时默认使用C
语言的库,只有添加了-lstdc++
选项才会使用C++
的库不过GCC中还有一个
g++
命令,它专门用来编译C++
程序,g++
命令和gcc
命令的用法如出一辙:使用
-o
选项可以指定可执行文件的名称:选择标准:
获得程序状态:
- windows:
echo %ERRORLEVEL%
- UNIX:
echo $?
GCC 是由 GUN 组织开发的,最初只支持C语言,是一个单纯的C语言编译器,后来 GNU 组织倾注了更多的精力,使得 GCC 越发强大,增加了对
C++
、Objective-C
、Fortran
、Java
等语言的支持,此时的 GCC 就成了一个编译器套件(套装),是所有编译器的总称。在这个过程中,
gcc
命令也做了相应地调整,不再仅仅支持C语言,而是默认支持C语言,增加参数后也可以支持其他的语言。也就是说,gcc
是一个通用命令,根据不同的参数调用不同的编译器或链接器。但是让用户指定参数是一种不明智的行为,不但增加了学习成本,还使得操作更加复杂,所以后来 GCC 又针对不同的语言推出了不同的命令,例如g++
命令用来编译 C++
,gcj
命令用来编译 Java
,gccgo
命令用来编译Go语言。