提前:安装好vim gcc g++等软件
项目:
- main.cpp
- A.h
- A.cpp
(1) 创建一个C++项目的目录和生成文件
mkdir test // 建立test文件夹
cd ./test
vi A.h
vi A.cpp
vi main.cpp // 使用touch命令也可以
代码如下:
// A.h
class point{
private:
int x_, int y_;
public:
A(int a,int b):x_(a),y_(b){}
~A(){}
void print();
};
// A.cpp
#include <iostream>
#include "A.h"
void A::print(){
std::cout<<"x="<<x_<<", y="<<y_<<"\n";
}
// main.cpp
#include <iostream>
#include "point.h"
using namespace std;
int main(){
A p0(3,4);
p0.print();
return 0;
}
(2) 构建C++项目
编辑一个makefile文件(也可以叫Makefile)
cd ./test
vim makefile
// makefile内容
all:
// 使用g++编译当前所有的.cpp文件,其中main.cpp要放在第一个
// -o app 表示生成的可执行文件为app
// -std=c++11表示支持C++11标准
g++ main.cpp A.cpp -o app -std=c++11
clean:
rm app// 删除app
在当前目录下执行命令make
就可以了
(3) 进阶解释makefile
执行make命令,在当前目录下找名字叫“Makefile”或“makefile”的文件。
- 它会找文件中的第一个目标文件(target),并把这个文件作为最终的目标文件。
- 如果目标文件不存在,或是目标文件所依赖的后面的 .o 文件的文件修改时间要比目标文件这个文件新,那么,他就会执行后面所定义的命令来生成edit这个文件。
target: 依赖项
【Tab】 命令1(任意的Shell命令)
# 解释
target 依赖于 依赖项,只要依赖项中的其中一个进行了修改,那么就会执行命令1
calc: main.c getch.c getop.c stack.c
gcc -o calc main.c getch.c getop.c stack.c
现在要生成calc,calc依赖于后面4个.c文件,只要依赖项中有任何一个修改时间比calc新,make时就会调用gcc命令
看到一个写的很详细的博主,推荐一波
https://blog.csdn.net/liang13664759/article/details/1771246