cpp learning

学过 C++ 都知道,C++ 需要经过编译和链接,在 linux 下如果有很多文件需要编译和链接,那真是太麻烦了,为了简化,我们可以将其构建顺序和操作写到一个文件里,然后执行该文件即可。这就是 makefile 的由来。

语法

target: dependencies
	action

target 是目标文件,dependencies 是依赖文件,action 是执行指令。

实例

源文件 main.cpp

#include "message.h"

int main(){
	message m;
	m.printfMessage();
	return 0; 
}

头文件 message.h

#include "message.h"
#include <iostream>

void message::printfMessage(){
	std::cout << "Makefile Example\n";
}

源文件 message.cpp

#ifndef MESSAGE_H
#define MESSAGE_H

class message{
public:
	void printfMessage();
};

#endif  // MESSAGE_H

利用 make 工具快速构建项目

output: main.o message.o
	g++ main.o message.o -o output

main.o: main.cpp message.h
	g++ -c main.cpp

message.o: message.cpp message.h
	g++ -c message.cpp

clean: 
	rm *.o output

生成项目用 make

清除构建的项目用 make clean

高级用法