简易的C与CPP编译的makefile

来源:互联网 发布:润网数据 编辑:程序博客网 时间:2024/05/24 02:17

参考博客https://www.cnblogs.com/yyangblog/p/4159778.html

先附上makefile

BIN = main

SRC = $(wildcard *.c *.cpp)
COMPILE_TOOL_PATH = /opt/ti-processor-sdk-linux-am57xx-evm-03.01.00.06/linux-devkit/sysroots/armv7ahf-neon-linux-gnueabi
CFLAGS += -Wl,-rpath-link,$(COMPILE_TOOL_PATH)/usr/lib \
 -Wl,-rpath-link,$(COMPILE_TOOL_PATH)/lib \
 -I$(COMPILE_TOOL_PATH)/usr/include \
 -L$(COMPILE_TOOL_PATH)/usr/lib \
 -L$(COMPILE_TOOL_PATH)/lib \
  -I/home/yy/2.camera/lib/libusb-1.0.9/install/include \
 -L/home/yy/2.camera/lib/libusb-1.0.9/install/lib 
CFLAGS += -lusb-1.0 -lopencv_imgcodecs -lopencv_core -lopencv_highgui -lopencv_videoio -lopencv_imgproc -lOpenCL -lpthread -lrt
CC = arm-linux-gnueabihf-g++
$(BIN): $(SRC)
$(CC)  -o $@ $^ $(CFLAGS)
clean:

rm -f $(BIN)

第一行:准备生成可执行模块

第二行:$(wildcard *.c *.cpp)中的wildcard:是$(wildcard *.c)来获取工作目录下的所有的.c文件列表

第三行:C/CXX编译器的参数特性:这里指定cpp文件模块所需要的指定编译器的路径。

第四行:指定编译时候需要动态链接的头文件和库的路径

$(BIN): $(SRC)
$(CC)  -o $@ $^ $(CFLAGS):

将SRC中包含的所有文件,根据编译器参数特性,链接编译生成目标文件

编译工具都是依靠CC/CXX CPPFLAGS/CXXFLAGS LDFLAGS这几个变量在控制







原创粉丝点击