编译可以用gcc/g++,但链接用g++或者gcc -lstdc++。因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价
因为gcc只能编译C语言编写的程序,有的程序是用C++写的,所以编译的时候就要使用G++,或者手动加上标准C++库
严格来说,这句话不算错误,但是它混淆了概念,应该这样说:编译可以用gcc/g++,而链接可以用g++(gcc -lstdc++也可以达到同样的效果, 只是需要显示去链接c++的库)。因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。 误区四: extern "C"与gcc/g++有...
后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序,后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。 在编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,需要这样,gcc -lstdc++, 所以如果你的Makefile文件并没有...
链接的时候gcc不会默认加上-lstdc++选项,而g++会,所以导致gcc编译c++代码时,用到了stl库时会出现链接失败。 gcc不会定义__cplusplus宏,而g++会,这个宏只是标志着编译器将会把代码按C还是C++语法来解释,如果后缀为.c,并且采用gcc编译器,则该宏就是未定义的,否则,就是已定义。
使用gcc命令编译C++程序的步骤与上述步骤基本相同,只需将源代码文件的后缀改为.cpp,并在编译命令中添加-lstdc++选项后,再进行编译和链接。 总结:通过gcc命令在Linux系统下编译C/C++程序,可以将源代码文件编译成可执行文件,并在终端中运行该可执行文件。
gcc -lstdc++ filename.cpp -o output “` 这里的-lstdc++选项是为了链接C++的标准库。其他部分与使用g++命令相同。 3. make命令:make是一种自动化构建工具,可以根据Makefile文件中的设定来编译C++源代码。Makefile文件是一个文本文件,其中包含了文件之间的依赖关系和编译命令。使用make命令编译C++文件的步骤如下:...
简单理解,g++和gcc都是GCC的调用指令,其中g++等同于gcc -xc++ -lstdc++ -shared-libgcc。我们最好使用gcc编译C程序,使用g++编译C++程序。 预处理 预处理主要包含如下几步: 展开头文件 宏替换 去掉注释 条件编译 1. 宏 C++中用#define <宏名> <字符串>命令定义宏,在代码中将字符串替换宏名出现的位置。定义...
2. gcc -S: 生成汇编指令 3. gcc - c: 生成二进制文件 4. gcc -I: (包含头文件) 5. gcc -o: 指定输出 6. gcc -D xxxx: 编译时传递宏 -D之前 -D之后 7. gcc -g: 用于gdb调试 8. gcc -Wall: 多警告 9. gcc -lstdc++: 指定c++方式编译 ...
lsgcc test.cpp-otest-lstdc++ls 1. 2. 3. 注:必须加上 -lstdc++ 选项用来通知链接器链接静态库 libstdc++.a。 -o 选项指定的是编译后的可执行文件名。 执行编译后的二进制程序文件,查看输出。 ./test 1. 2.编写文件处理程序。 这就需要用到 C++ 中另一个标准库 fstream。