Linux Makefile 小事例

感觉Linux下不会makefile少点什么。

先说下我的目录

test.cpp  Makefile
bin/
include/
     a.h
src/
     a.cpp
lib

makefile 文件

vpath %.h include 
vpath %.cpp src 
objects= obj/test.o 
INCLUDE = -I include 
SUBDIRS=adir
LIB=-L lib -ltest
.PHONY:all
all:
    


.PHONY:getlib
getlib:lib/libtest.a
lib/libtest.a:obj/a.o
    ar -r $@ $^
obj/a.o:a.cpp
    g++ -c $< -o $@ $(INCLUDE)
.PHONY:getexe
getexe:bin/Handle
bin/Handle:$(objects) 
    g++ $^ -o $@ $(INCLUDE) $(LIB)
obj/test.o: test.cpp  
    g++ -c $< -o $@  $(INCLUDE) 
.PHONY:clean
clean:
    -rm lib/* obj/* bin/*
~    
a.h

#ifndef _A_H_
#define _A_H_
#include<iostream>
using namespace std;
class A
{
        public:
                void Handle();
};
#endif


a.cpp

     

#include "a.h"
void A::Handle(){
        cout<<"这是A的一个函数!"<<endl;
        cout<<"这是A的一个函数!"<<endl;
}

test.cpp

#include"a.h"
#include<vector>
int main(){
        A a1; 
        a1.Handle();
        return 0;
}

执行:

make getlib

make getexe

就会在 bin下生成执行文件 lib下生成lib文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值