• 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) 
    ############################################################################
  • 相关阅读:
    原创 记录一次线上Mysql慢查询问题排查过程
    原创 |我是如何解决POI解析Excel出现的OOM问题的?
    FastJson序列化时候出现了$ref?还不赶紧学习下
    fastjson自定义序列化竟然有这么多姿势?
    SpringBoot2.0整合WebSocket,实现后端数据实时推送!
    SpringMVC+Mybatis 如何配置多个数据源并切换?
    异常: java.security.InvalidKeyException: Illegal key size
    一分钟带你了解下MyBatis的动态SQL!
    一分钟带你了解下Spring Security!
    历时七天,史上最强MySQL优化总结,从此优化So Easy!
  • 原文地址:https://www.cnblogs.com/soul-stone/p/6681401.html
Copyright © 2020-2023  润新知