gcc 1.c和g++ 1.c有什么区别?
先假设1.c只有C语言语法,不涉及C++语法,我们利用-E/-S指令对比二者编译过程中的差异。
Based on gcc 11.4.0 and g++ 11.4.0.
#include <stdio.h>
int main()
{
short a = 100;
printf("%d", a);
return 1;
}
- 预处理:差异在头文件包含,g++默认多定义__cplusplus和_GNU_SOURCE,头文件的函数声明会多extern "C"标志,另外打开了GNU更多features.
详细参见:gcc 1.c和g++ 1.c预处理有什么区别? - 编译/汇编/链接:均无差异,参见:gcc 1.c和g++ 1.c编译阶段有什么区别?
gcc 1.cpp和g++ 1.cpp有什么区别?
和gcc 1.c和g++ 1.c有什么区别?类似,我们一样用-E/-S指令探究编译内部的差异。
Based on gcc 11.4.0 and g++ 11.4.0.Based on gcc 11.4.0 and g++ 11.4.0.
#include <iostream>
using namespace std;
int main()
{
cout << 100 << endl;
return 1;
}
- 预处理: 无差异。
gcc -E 1.cpp -o 1.i
g++ -E 1.cpp -o 11.i - 编译:无差异。
gcc -S 1.cpp -o 1.s
g++ -S 1.cpp -o 11.s - 汇编:无差异。
gcc -c 1.cpp -o 1.o
g++ -c 1.cpp -o 11.o - 链接:无差异。
gcc 1.cpp -o 1 -lstdc++
g++ 1.cpp -o 11
总结一下,gcc和g++都能识别文件类型,如果是.cpp文件,gcc就像g++一样。
GCC和G++有什么区别?
gcc命令不止能编译C语言,还可以编译C++(内部等同于调用g++)或Fortran等(编译其它语言相当于调用对应语言的编译器),g++只能编译C或者C++.
如果仅仅考虑C语言,参考此公式:g++ == gcc -xc++ -lstdc++ -shared-libgcc.
gcc 1.c和g++ 1.c有什么区别?
gcc 1.cpp和g++ 1.cpp有什么区别?
若文章对您有帮助,欢迎关注。助您在编程路上越走越好!
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。