g++和gcc的区别是什么?它们中的哪一个应该用于一般的c++开发?
当前回答
gcc和g++是GNU编译器集合(曾经只是GNU C编译器)的编译器驱动程序。
尽管它们根据文件类型自动决定调用哪个后端(cc1 cc1plus…),但它们还是有一些不同之处,除非使用-x语言重写。
它们默认值中最重要的区别可能是它们自动链接到哪些库。
根据GCC的在线文档链接选项和g++的调用方式,g++等价于GCC -xc++ -lstdc++ -shared-libgcc(第一个是编译器选项,第二个是链接器选项)。这可以通过运行-v选项来检查(它会显示正在运行的后端工具链命令)。
其他回答
gcc和g++是GNU编译器集合(曾经只是GNU C编译器)的编译器驱动程序。
尽管它们根据文件类型自动决定调用哪个后端(cc1 cc1plus…),但它们还是有一些不同之处,除非使用-x语言重写。
它们默认值中最重要的区别可能是它们自动链接到哪些库。
根据GCC的在线文档链接选项和g++的调用方式,g++等价于GCC -xc++ -lstdc++ -shared-libgcc(第一个是编译器选项,第二个是链接器选项)。这可以通过运行-v选项来检查(它会显示正在运行的后端工具链命令)。
对于c++,你应该使用g++。
它是相同的编译器(例如GNU编译器集合)。GCC或g++只是使用不同的默认选项选择不同的前端。
简而言之:如果你使用g++,前端会告诉链接器你可能想要链接到c++标准库。gcc前端不会这样做(如果您传递正确的命令行选项,它也可以与它们链接)。
gcc和g++都是GNU编译器。它们都编译c和c++。区别在于对于*.c文件,gcc将其视为c程序,而g++将其视为c++程序。*.cpp文件被认为是c++程序。c++是C的超集,语法更严格,所以要注意后缀。
GNU编译器集合
指向GNU编译器支持的所有不同语言的引用。
gcc: GNU C编译器 g++: GNU c++编译器
主要区别:
gcc会将:*. C \*.cpp文件分别编译为C和c++。 g++将编译:*. C \*.cpp文件,但它们都将被视为c++文件。 另外,如果你使用g++来链接目标文件,它会自动链接到std c++库中(gcc不这样做)。 gcc编译C文件的预定义宏更少。 GCC编译*.cpp和g++编译*.c\*.cpp文件有一些额外的宏。
编译*.cpp文件时的额外宏:
#define __GXX_WEAK__ 1
#define __cplusplus 1
#define __DEPRECATED 1
#define __GNUG__ 4
#define __EXCEPTIONS 1
#define __private_extern__ extern
一个显著的区别是,如果你传递一个。C文件给gcc,它将被编译为C。
g++的默认行为是将. C文件视为c++(除非指定了-x C)。
推荐文章
- 为什么我的程序不能在Windows 7下用法语编译?
- 如何获取变量的类型?
- 什么是奇怪的重复模板模式(CRTP)?
- 连接两个向量的最佳方法是什么?
- 在c++中,是通过值传递更好,还是通过引用到const传递更好?
- 在STL中deque到底是什么?
- Windows上最好的免费c++分析器是什么?
- 如何自动转换强类型枚举为int?
- 在一个类中使用具有成员函数的泛型std::function对象
- 'for'循环中的后增量和前增量产生相同的输出
- 虚函数和纯虚函数的区别
- c++中的_tmain()和main()有什么区别?
- 内存泄漏是否正常?
- 当启用c++ 11时,std::vector性能回归
- 什么时候使用哪种指针?