• makefile模板


     1,编译so

    #!/bin/bash
    ############################################################################
    #
    ############################################################################
    #源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件
    SOURCE  := $(wildcard *.c) $(wildcard *.cpp)
    OBJS    := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))
    
    TARGET  := libxlib_alg.so
    ROOT_DIR := /home/derek/share/xlib
      
    ############################################################################  
    # 编译参数
    ############################################################################  
    # 编译器
    CC := gcc
    LD := ld
    
    # 编译宏
    DEFINES := 
    
    # 头文件路径
    INCLUDE := -I$(ROOT_DIR)/include  
    
    # 链接库
    LIBS := -lpthread 
    
    # 链接选项
    LDFLAGS :=
    
    # 汇总处理
    CFLAGS := -g -Wall -O3 $(DEFINES) $(INCLUDE) $(LIBS)
      
    ############################################################################  
    # 下面的基本上不需要做任何改动了
    ############################################################################  
    all:$(OBJS)
        echo $(OBJS)
        $(LD) -shared -o $(TARGET) $(OBJS) $(LDFLAGS)
    
    clean:
        echo "Removing linked and compiled files......"
        rm -fr *.o $(TARGET)
    
    %.o:%.c
        @echo Compiling $< ...
        $(CC) -fPIC -c $(CFLAGS)  $< -o $*.o

     2,编译app

    #!/bin/bash
    ############################################################################
    #
    ############################################################################
    #源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件
    SOURCE  := $(wildcard *.c) $(wildcard *.cpp)
    OBJS    := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))
      
    #目标文件名,输入任意你想要的执行文件名
    TARGET  := cmd.bin
    ROOT_DIR := /home/derek/share/xlib
    
    ############################################################################  
    # 编译参数
    ############################################################################  
    # 编译器
    CC := gcc
    LD := ld
    
    # 编译宏
    DEFINES :=
    
    # 头文件路径
    INCLUDE := -I$(ROOT_DIR)/include  
    
    # 链接库
    LIBS := -lpthread 
    
    # 链接选项
    LDFLAGS :=
    
    # CFLAGS汇总处理
    CFLAGS := -g -Wall -O3 $(DEFINES) $(INCLUDE) $(LIBS)
    
    ############################################################################  
    # 下面的基本上不需要做任何改动了
    ############################################################################
    .PHONY : everything clean rebuild
    
    everything : $(TARGET)
    all : $(TARGET)
    
    rebuild: clean everything
    
    clean:
        echo "Removing linked and compiled files......"
        rm -fr $(TARGET)
        rm -fr *.o
    
    $(TARGET) : $(OBJS)
        echo $(OBJS)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) 
    ############################################################################
  • 相关阅读:
    vue cli3的多环境配置
    【Unity】VSync垂直同步
    css控制中文单词不拐行
    Spring aop 自定义注解 注解声明在类上 aop 前置通知不生效?
    校验日期格式{YYYYMMDD的 java代码
    Spring的@ExceptionHandler注解使用方法
    Pointcut注解表达式@target、@annotation、@within、this、target、within等
    Redisson的简单使用
    JoinPoint和ProceedingJoinPoint区别
    自定义注解详细介绍
  • 原文地址:https://www.cnblogs.com/soul-stone/p/6681401.html
Copyright © 2020-2023  润新知