美文网首页
Linux下C++编程环境搭建

Linux下C++编程环境搭建

作者: KevinCool | 来源:发表于2016-05-27 17:46 被阅读2521次

操作系统是Deepin 15 amd64

安装g++环境

sudo apt-get install g++

运行g++ -v查看是否安装成功。

  • gcc与g++的区别
    gcc可以用来编译C或者C++,但是只能编译C++源文件,不能自动与C++使用的库连接,g++可以实现C++程序的编译和连接,要编译C++代码生成可执行文件使用g++

一个简单的CPP文件

#include <iostream>
using namespace std;
int main(){
   cout << "Come up and C++ me some time.";
   cout << endl;
   cout << "you won't regret it " << endl;
   return 10;
}```
使用g++进行编译`g++ -o example1 example1.cpp`
然后执行可执行文件`./example1`
获取main函数的返回值`echo $?`
如果想让编译和运行同时进行可以使用下面的命令:`g++ -o example1 example1.cpp && ./example`

###头文件
头文件的作用就是被其他的.cpp包含,本身并不参与编译,但是实际上它们的内容却在多个.cpp文件中得到了编译。
头文件中应该只放变量和函数的声明,而不能放它们的定义。
除了:
 - const对象的定义
 - 内联函数inline的定义
 - 类的定义

###分离式编译
Circle.h 定义了类

ifndef CIRCLE_H

define CIRCLE_H

class Circle{
private:
double r;
public:
Circle();
Circle(double R);
double Area();
};

endif```

Circle.cpp定义了具体的属性与方法

#include "Circle.h"
#include <iostream>
using namespace std;
Circle::Circle(){
    this->r=5.0;
}
Circle::Circle(double R){
    this->r=R;
}
double Circle::Area(){
    return 3.14*r*r;
}```
main.cpp

include "Circle.h"

include <iostream>

using namespace std;
int main(int argc,char *argv[]){
Circle c(3);
cout << "Area=" << c.Area() << endl;
return 0;
}```
编译:
-c命令表示编译,头文件不允许显式编译,实际上已经编译,如果只修改了一个源文件(CPP),只需要编译改动的文件。
g++ -c Circle.cpp -o Circle.o
g++ -c main.cpp -o main.o
g++ main.o Circle.o -o main
./main

makefile

定义了整个工程的编译规则,自动化编译,只需要一个make命令,整个工程完全自动编译,make是一个命令工具,是一个解释makefile中指令的命令工具。

  • 基本规则:
target...:prerequisites...
   command```
target指的是目标文件,可以是Object File,也可以是可执行文件。
prerequisites是生成target所需要的文件或者目标
command是make需要执行的命令,但是g++命令开头必须有tab空格。
将名字命名为Makefile或者makefile,在命令行下输入make就可以自动化编译。

main: main.o Circle.o
g++ main.o Circle.o -o main
Circle.o:Circle.cpp
g++ -c Circle.cpp -o Circle.o
main.o:main.cpp
g++ -c main.cpp -o main.o```

相关文章

网友评论

      本文标题:Linux下C++编程环境搭建

      本文链接:https://www.haomeiwen.com/subject/tmqfdttx.html