应该向gcc提供什么编译器参数才能认为它是g ++?

Rel*_*lla 2 c++ gcc g++

是否有可能为gcc写一个参数,以便它会认为它的G ++?

Joh*_*itb 5

你为什么想做这个?据我所知,唯一的区别是,g++除了传递-lstdc++给链接器,还要链接C++标准库.

因此,如果您将该选项传递给GCC,它应该将其转发给链接器,并且一切都应该没问题.但我真的没有理由这样做.只是用g++.

也就是说,我gcc过去用自己来编译C++代码.当我有一堆文件,混合C++和C代码时,我只是使用编译所有内容gcc,因为g++默认情况下.c它被视为C++代码,当C代码使用诸如new标识符之类的东西时会破坏构建.添加-lstdc++总能很好地工作.

请参阅GCC联机帮助页

编译C++程序

C++源文件通常使用后缀.C,.cc,.cpp,.CPP,.c ++,.cc或.cxx; C++头文件通常使用.hh,.hpp,.H或(对于共享模板代码).tcc; 和预处理的C++文件使用后缀.ii.GCC识别具有这些名称的文件并将它们编译为C++程序,即使您以与编译C程序相同的方式调用编译器(通常使用名称gcc).

但是,使用gcc不会添加C++库.g ++是一个调用GCC并将.c,.h和.i文件视为C++源文件而不是C源文件的程序,除非使用-x,并自动指定与C++库的链接.当预编译具有.h扩展名的C头文件以用于C++编译时,此程序也很有用.在许多系统上,还安装了名为c ++的g ++.

编译C++程序时,可以指定许多用于编译任何语言程序的命令行选项; 或对C和相关语言有意义的命令行选项; 或仅对C++程序有意义的选项.