编写简单的makefile

在介绍makefile前,先介绍linux上如何调用类的方法。下面简单的介绍如何在main.c 中调用print.c中的函数和类。

见实例:

print.h

#include <stdio.h>

int printHello();

class People
{
	public:
		People();
		~People();
		void PeopleHello();
};

 

print.c

#include "print.h"
int printHello()
{
	printf("hello\n");
}

People::People(){}

People::~People(){}

void People::PeopleHello()
{
	printf("Hello people\n");
}


main.c

#include "print.h"
#include <stdio.h>

int main()
{
	printHello();		//函数
	People people;		//类
	people.PeopleHello();
	return 0;
}

 

首先编译print.c,生成print.o目标文件:g++ -c print.c

将.o文件和main.c一起编译:g++ main.c print.o -o hello

 

首先是对makefile的理解: 它是一个规则,用来确定如何编译链接c/c++文件。它实现的机制类似于宏,整个过程可以理解为递归方式,一个一个目标实现。(生成的文件为test1和test2都是可执行文件,在linux中后缀名不是很重要)

如下面这段简单的makefile,解释如注释。

all:rest1 rest2                               //目标为all,由rest1和rest2组成
					//,当运行时就会去先查找rest1再查找rest2
rest2:io.o test.o				//test2由io.o和test.o生成
	gcc io.o test.o -o test1		//生成过程。其中gcc是编译c的代码,将.o文件链接成可执行test1
rest1:data.o main.o			//文件,这里-o的意思是将链接后的文件归档为
	gcc data.o main.o -o test2

io.o:io.h io.c				//目标:编译出.o文件
	gcc -c io.c			//编译过程。
data.o:data.c data.h
	gcc -c data.c

clean:					//这里是伪目标
	rm *.o



 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值