g++的使用
2016-05-07 23:53
288 查看
C++中的一些文件后缀
.a | 静态库 (archive) |
.C .c .cc .cp .cpp .cxx | C++源代码(需要编译预处理) |
.h | C或者C++源代码头文件 |
.ii | C++源代码(不需编译预处理) |
.o | 对象文件 |
.s | 汇编语言代码 |
.so | 动态库 |
<none> | 标准C++系统头文件 |
从单个源文件生成可执行程序
下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码:
1 23 4 5 6 7 | /* helloworld.cpp */ #include <iostream> int main(int argc,char *argv[]) { std::cout << "hello, world\n"; return(0); } |
$ g++ helloworld.cpp |
1 2 | $ ./a.out hello, world |
$ g++ helloworld.cpp -o helloworld |
1 2 | $ ./helloworld hello, world |
$ gcc helloworld.cpp -lstdc++ -o helloworld |
在大多数系统中,GCC 安装时会安装一名为 c++ 的程序。如果被安装,它和 g++ 是等同,如下例所示,用法也一致:
$ c++ helloworld.cpp -o helloworld |
多个源文件生成可执行程序
如果多于一个的源码文件在 g++ 命令中指定,它们都将被编译并被链接成一个单一的可执行文件。下面是一个名为 speak.h 的头文件;它包含一个仅含有一个函数的类的定义:
1 23 4 5 6 7 | /* speak.h */ #include <iostream> class Speak { public: void sayHello(const char *); }; |
1 23 4 5 6 | /* speak.cpp */ #include "speak.h" void Speak::sayHello(const char *str) { std::cout << "Hello " << str << "\n"; } |
1 23 4 5 6 78 | /* hellospeak.cpp */ #include "speak.h" int main(int argc,char *argv[]) { Speak speak; speak.sayHello("world"); return(0); } |
$ g++ hellospeak.cpp speak.cpp -o hellospeak |
这里说一下为什么在命令中没有提到“speak.h“该文件(原因是:在“speak.cpp“中包含有”#include”speak.h”“这句代
码,它的意思是搜索系统头文件目录之前将先在当前目录中搜索文件“speak.h“。而”speak.h“正在该目录中,不用再在命令中指定了)。
相关文章推荐
- 弄清楚C语言中的取反和反码
- 版本定制第5课:基于案例一节课贯通Spark Streaming流计算框架的运行源码
- leetcode 137
- Android N 完全不同以往的四个新特性
- 循环队列(C语言实现)
- 滑动窗口机制
- android:模仿微信联系人效果
- <MZ & DC 联考>D2 T3
- 字符串中查找IP地址的正则表达式
- jquery实现网页选项卡
- 发送和接收数据包
- Oracle之UTL_FILE 包用法详解
- C语言中,结构体成员变量的点和箭头
- 算法导论——红黑树插入算法C++实现
- 1002. A+B for Polynomials (25)
- 设计模式-单例模式(Singleton)各种写法和分析比较
- Android audio设备的定义
- (一)HTML介绍
- struts2(六)拦截器机制
- mybatis基础知识-1.JDBC存在的问题