用gcc编译C++文件
来源:互联网 发布:java短信发送验证代码 编辑:程序博客网 时间:2024/06/01 15:54
我们误以为gcc只能用来编译C文件,这是不对的。
gcc也可以编译C++文件,只是gcc不能自动联接C++程序使用的库,即链接过程我们不能用gcc
而g++实际上在编译C++文件时也是使用gcc编译器,在链接时才使用g++
例子1:
#include <stdio.h> template<class T>T max(T a, T b){ return a>b?a:b;} int main(){ int a,b; a = 5; b = 3; printf("max=%d\n", max(a,b)); return 0;}
我们将其保存为test.cpp
在这里中,我们选择了C++中有而C没有的类模板来做实例,更具有说服力。
接着用gcc编译,输入命令gcc test.cpp -o test
没有错误,输入./test 运行
结果输出max=5,可以验证以上说法
例子2:
#include <iostream> using namespace std;int main(){ cout << "link test" << endl; return 0;}
这里我们使用了常规操作,只是使用的库文件不是标准的C库文件,而是C++的iostream
我们使用命令gcc test.cpp -o test生成可执行文件,可以看到出现了错误
接着我们使用命令gcc -c test.cpp,这样我们对代码只进行编译而不进行链接,命令执行后,没有提示错误,并且可以看到当前目录下出现了test.o
然后我们进行链接gcc test.o -o test,发现出现了和之前一样的错误,说明gcc不能自动联接C++程序的库
那么我们使用命令gcc test.o -o test -lstdc++ 联接C++的库,就会发现链接已经没问题,目录下出现了test文件
运行一下,显示link test,表示试验成功
这里注意-lstdc++要放在后面,因为编译器是从右向左调用和处理变量的,如果我们使用gcc -lstdc++ test.o -o test的话,错误还是会存在的
(网上说gcc -lstdc++ test.cpp -o test也可以,那大概是gcc的版本不一样的问题)
————————————————————
本次测试环境:
虚拟机Ubuntu12.04,内核版本3.2.0
gcc version 4.6.3
- gcc 编译.c文件
- 用gcc命令编译.c文件
- gcc编译c文件指导
- gcc编译运行c文件
- GCC编译c语言文件
- gcc 编译.c文件的编译过程
- ubuntu下用gcc编译c程序文件
- UBuntu12.04下用gcc编译c文件过程详解
- GCC编译多个C文件
- GCC编译多个c文件
- gcc编译多个c文件
- gcc编译多个c文件
- gcc/g++编译c/c++文件
- 用GCC编译C++文件
- 用gcc编译C++文件
- Linux下用gcc编译c程序
- 用gcc去编译c程序
- 用cmd编译c程序--gcc/gdb
- 斐波那契数列 Java实现
- mysql客户端工具
- hibernate的低级错误
- NYOJ96 - n-1位数
- 追求,永无止境
- 用gcc编译C++文件
- 在hadoop MapReduce 中写日志消息
- 三星回应 Note7爆炸事件,再次敲响安全警钟
- 如何让孩子爱上设计模式 ——9.组合模式(Composite Pattern)
- 在Eclipse下编写HTML/CSS/JS/JSP/Java代码时,代码自动提示的相关设置
- 理解Python的With as语句
- 谷哥的小弟学前端(09)——CSS基础知识(7)
- 三星加强安全性保障未来产品安全
- java判断文件是否是一个lnk快捷方式