美文网首页Linux
Linux Makefile文件模板

Linux Makefile文件模板

作者: 小桥流水啦啦啦 | 来源:发表于2020-05-23 18:45 被阅读0次

    1、编译驱动的Makefile文件模板:

    ifneq ($(KERNELRELEASE),)
    obj-m := test.o
    else
    #KERNEL_DIR ?= /lib/modules/$(shell uname -r)/build       #for ubuntu
    KERNEL_DIR ?= /home/kernel/ # for 内核路径
    PWD := $(shell pwd)
    default:
        $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules
    endif
    clean:
        rm -rf *.o *.order *.mod.* *.ko *.symvers
    

    2、编译c/c++文件的Makefile文件模板:

    CC=gcc
    CXX=g++ -std=c++11
    CFLAGS=-Wall -g -O2
    ALL=usbtocan
    OBJECT=usbtocan.o main.o
    LIB=-lpthread
    %*.o:%*.cpp
            $(CXX) -c $(CFLAGS) $< -o $@ $(LIB)
    $(ALL):$(OBJECT)
            $(CXX) $(LIB) $(CFLAGS) -o $@ $^
     
    .PHONY:clean
    clean:
        rm -rf $(ALL) $(OBJECT)
    

    3、带文件夹的文件模板

    INC_DIR:=./include
    SRC_DIR:=./src
    OBJ_DIR:=./obj
    BIN_DIR:=./bin
     
    SRC=${wildcard ${SRC_DIR}/*.cpp}                                 #扩展通配符
    OBJ=${patsubst %.cpp, ${OBJ_DIR}/%.o,${notdir ${SRC}}}           #替换通配符
     
    CC:=g++
    CPPFLAGS:=-Wall -lpthread -std=c++11 -I${INC_DIR} #-g -rdynamic
    TARGET=server
    BIN_TARGET=$(BIN_DIR)/$(TARGET)
     
    $(BIN_TARGET):$(OBJ)
        $(CC) $(OBJ) -o $@ $(CPPFLAGS)
     
    $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp
        $(CC) $(CPPFLAGS) -c $< -o $@
        
    .PHONY:clean
    clean:
        find $(OBJ_DIR) -name *.o -exec rm -rf {} \;
    

    (完成)

    相关文章

      网友评论

        本文标题:Linux Makefile文件模板

        本文链接:https://www.haomeiwen.com/subject/wpplahtx.html