Makefile 简单实例

makefile中编译生成so库并且通过链接该so库生成bin程序

初版:

test: test.o libv4l2.so
	g++ -o test test.o -L. -Wl,-rpath=./ -lv4l2

test.o: test.cpp
	g++ -o test.o test.cpp -c

libv4l2.so: UsbCamera.cpp
	g++ -o libv4l2.so UsbCamera.cpp -shared -fPIC

clean:
	rm test.o test libv4l2.so

上面这种是最简单的makefile的写法,还是少用这种写法,看起来就感觉很low ==!下面我们来对它进行改版。

其核心语句本质上也还是上面的,主要是用一些变量对其进行表示,使其更加通用化,然后我们只修改变量即可。

#CROSS	:= aarch64-linux-gnu-
CROSS	:= 
CC      := $(CROSS)gcc
CXX     := $(CROSS)g++

#编译生成bin文件
TARGET	:= test
SRC     := test.cpp
LDFLAGS	:= -L./ #链接库的路径
LIBS	:= -lv4l2 #链接编译出来的动态库 libv4l2.so
INCLUDE	:= -I./ #头文件路径

#编译生成so库
TARGET_LIB	:= libv4l2.so
LIB_SRC		:= UsbCamera.cpp
CFLAGS		:= -shared -fPIC

$(TARGET): $(SRC) $(TARGET_LIB)
	$(CXX) -o $@ $^  $(LDFLAGS) $(INCLUDE) -Wl,-rpath=./ $(LIBS)

#test.o: $(SRC)
#	$(CXX) -o $@ $^ -c

$(TARGET_LIB): $(LIB_SRC)
	$(CXX) -o $@ $^ $(CFLAGS)

clean:
	rm  $(TARGET)  libv4l2.so

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值