makefile模板1

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 [email protected] $(OBJS)
############################################################################
时间: 2024-08-01 22:36:12

makefile模板1的相关文章

linux下面简单通用的Makefile模板

简单通用的Makefile模板: ############################################## # # 单目录通用Makefile # 目标文件可自己的设定 # 始须调试程序,修改 CFLAGS 变量为-Wall -g # # wuyq 20140825 ############################################## # EXECUTABLE为目标的可执行文件名, 可以根据具体的情况对其进行修改. EXECUTABLE := spi

makefile编写---.c .cpp 混合编译makefile 模板

# c.cpp混合编译的makefile模板 # # BIN = client_system BASE_INSTALL_DIR := /opt/arm-2009q1 BUILD_TOOL_DIR := $(BASE_INSTALL_DIR) BUILD_TOOL_PREFIX := $(BUILD_TOOL_DIR)/bin/arm-none-linux-gnueabi- CC = $(BUILD_TOOL_PREFIX)gccCPP = $(BUILD_TOOL_PREFIX)g++ INCS

Vim编程下自创Makefile模板

前言 一直都对Linux和Vim情有独钟,其实windows也很不错,因为工作上难免有些情况只能使用windows进行开发,包括有些API或者SDK都只有windows版本,只是用Linux的时候就感觉和计算机特别亲近的感觉,哈哈哈,夸张而言. 至于Vim(这里暂且不讨论vim和emacs谁更好的问题,这个是哲学问题),对比起大多数人估计都习惯使用IDE进行编程,使用vim确实难度会大很多,所以,如果不是专业的开发人员,其实也没有必要使用vim编程,不过有时候想,如果当年大学的编程课教的不是使用

万能makefile模板

这里一份万能makefile模板,写opencv项目时候使用的. 前提是提前配置好 包管理工具 pkg 然后就不用每次都去 -lopencv_xxx了. ###################################### # ###################################### #source file #源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件 SOURCE := $(wildcard *.c) $(wildcard *.cpp) OB

我所使用的一个通用的Makefile模板

话不多说,请看: 我的项目有的目录结构有: dirls/ ├── include │   └── apue.h ├── lib │   ├── error.c │   ├── error.o │   └── Makefile ├── src │   ├── dirls.c │   ├── dirls.out │   └── Makefile └── test_client 而我的Makefile模板代码如下: SRCS = $(wildcard *.c ../lib/*.c) #wildcard

一个简单的makefile模板

在Linux下编译工程,makefile是必不可少的工具,下面记录一个简单的makefile模板. 多个文件目录下的makefile写法推荐参考博文:http://www.cnblogs.com/Anker/p/3242207.html DIR_SRC = ./ DIR_BIN = ../bin PROGRAMNAME = program TARGET = ${DIR_BIN}/${PROGRAMNAME} SRC = $(wildcard ${DIR_SRC}/*.cpp) CC = g++

linux: 几个常用makefile模板

不才,总结个人常用makefile模板,以备后用. 1.编译动态库 [plain] view plain copy ############################################################# # Makefile for shared library. # 编译动态链接库 ############################################################# #set your own environment o

makefile模板

1.简单的makefile模板 ############################################################# # Target files. ############################################################# TARGET := ############################################################# # Compiler tool ######

Linux工程下所有C代码编译Makefile模板

如何快速的开发简易C程序,首先需要一个Makefile模板. 简易Makefile特性 这个模板需要具备以下特性: ==>快速编译所有C代码 ==>能够快速打包源代码 ==>语言简洁易懂,便于后续的模块化操作 这里提供一个这样的模板供大家参考使用,如有改进方法和建议,也请不吝赐教,以便完善,谢谢! 简易Makefile模板 废话不说,使用<Linux下C/C++版本发布自动脚本>集成DEMO的三个文件进行简单的示例(version.c/main.c/version.h). M

kbuild的makefile模板

Makefile模板如下: #编译hello.o的时候加上预定义DEBUG_TEST CFLAGS_hello.o += -DDEBUG_TEST #编译所有的时候加上预定义MY_DEBUG EXTRA_CFLAGS += -DMY_DEBUG #指定最终生成的目标 #如果只有单个文件可以写成"obj-m := hello.o" obj-m += hello.o #指定生成hello.o文件需要哪些模块(如果只有单个文件可以删除下面这一行), #如果hello.o需要多文件构成则可以写