Linux学习-7 makefile 一个C++项目

提前:安装好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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值