入门级linux下C++的多文件编译
来源:互联网 发布:费马的房间 知乎 编辑:程序博客网 时间:2024/05/21 17:27
以前都是在windows下学C++,最近转到Linux下学习。留一下自己在学习过程中解决困难的笔记。
在Linux下,如果定义了多个头文件(.h),且里面的方法或函数都上在另外的文件(.cpp)中实现的。当你在另一个包含有主函数的文件(.cpp)中调用这些方法后,在编译的时候,不能像在windows下,只编译包含有主函数的文件(其实是windows中的IDE自己把其它文件也编译了),而是要编译每个.cpp文件。你可以分开编译每个.cpp文件,也可以整个一直编译。
如:
//x.h{ void P();}
//x.cpp#include"x.h"{ void P() { cout<<"C++"<<endl; }}
//main.cpp#include"x.h"int main(){ P(); return 0;}
编译:
1.分开编译 g++ x.cpp
g++ -o main main.cpp
编译完成之后就会生成一个main的可执行文件
2.一起编译 g++ -o main x.cpp main.cpp
编译完成之后就会生成一个main的可执行文件
再举个例子:
下面在cylindircal.h中定义了一个圆柱体积类,成员变量有半径和高;方法有设置半径和高,返回半径,高和体积。在cylindircal.cpp中分别实现了所有的方法,且在main.cpp对其进行了调用。
/*************************************************************************> File Name: cylindircal.h> Author: Tolic > Mail: mr_king1994@163.com> Created Time: Fri 08 May 2015 09:18:09 CST ************************************************************************///cylindircal.h#include<iostream>#ifndef _CYLINDIRCAL_H#define _CYLINDIRCAL_Hconst double PI=3.14;class cylindircal{ private: double radius; double height; public: cylindircal(); ~cylindircal(); void setRadius(double r); void setHeight(double h); double getRadius(); double getHeight(); double getVolume(); };#endif
/*************************************************************************> File Name: cylindircal.cpp> Author: Tolic > Mail: mr_king1994@163.com> Created Time: Fri 08 May 2015 09:29:16 CST ************************************************************************///cylindircal.cpp#include<iostream>#include"cylindircal.h"using namespace std;cylindircal::cylindircal(){ this->radius=0.0; this->height=0.0;}cylindircal::~cylindircal(){}void cylindircal::setRadius(double r){ this->radius=r;}void cylindircal::setHeight(double h){ this->height=h;}double cylindircal::getRadius(){ return this->radius;}double cylindircal::getHeight(){ return this->height;}double cylindircal::getVolume(){ return this->radius*this->radius*PI*this->height;}
/*************************************************************************> File Name: main.cpp> Author: Tolic > Mail: mr_king1994@163.com> Created Time: Fri 08 May 2015 09:35:11 CST ************************************************************************/#include<iostream>#include"cylindircal.h"using namespace std;int main(){ double temp; cin>>temp; cylindircal cy; cy.setRadius(temp); cin>>temp; cy.setHeight(temp); cout<<"Radius="<<cy.getRadius()<<","<<"Height"<<cy.getHeight()<<endl; cout<<"Volume="<<cy.getVolume(); return 0;}
0 0
- 入门级linux下C++的多文件编译
- Linux下编译C文件的过程
- linux下 c语言多文件编译
- linux下 c语言多文件编译
- Linux下C多文件编译Makefile
- linux下 c语言多文件编译
- Linux下C编程入门(.h文件,.c文件,以及多文件调用的方式)
- LINUX 下GCC编译C、C++入门
- Linux下C文件编译so文件
- 《求助》linux下编译带有sqlite3的c文件出错
- linux下编译c文件的过程(gcc)
- linux 多文件编译入门
- Linux下多文件的编译
- LINUX 2.6 内核下多C文件模块编译方法
- Linux下编译单个C文件
- 编译Linux下的文件
- C/C++在Linux GCC下的多文件编译执行
- Linux C 多文件编译
- VC编程使用HSB(HSV)色彩空间实现色差比较
- ModelAndView解析
- 【iOS解决方案】iPhone走马灯控件实现
- 序列化和反序列化
- 下拉刷新问题记录
- 入门级linux下C++的多文件编译
- Java语言系列课程的设置
- HttpClient3.0入门
- c语言函数参数传递
- 关于查阅资料
- 【iOS学习笔记】UIlabel文字自适应
- 2015中国高校毕业生薪酬排行榜
- Python之《机器学习系统设计》第十章
- Java异常概述