C、C++的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模板: ifeq ($(KERNELRELEASE),) //判断KERNELRELEASE是否为空,只有执行make的当前目录为内核源代码目录时,该变量才不为空. KERNELDIR ?=/linux-2.6.29.4/linux-2.6.29.4 PWD := $(shell pwd) modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules //make -C 内核路径 M=模块路径 modules modules_install:…
本文转载自geyingzhen<模块编译Makefile模板>   引用 geyingzhen 的 模块编译Makefile模板 ifneq ($(KERNELRELEASE), ) //判断KERNELRELEASE是否定/义,KERNELRELEASE是在linux内核源码中主Makefile中定义的              obj-m:=drive.o //编译生成目标文件else //若KERNELRELEASE没有否定义, KERNELDIR ?=/lib/modules/$(sh…
不才,总结个人常用makefile模板,以备后用. 1.编译动态库 ############################################################# # Makefile for shared library. # 编译动态链接库 ############################################################# #set your own environment option CC = g++ CC_FLAG =…
背景: 去年做项目的时候,由于有需要编译出多个可执行文件的需求,修改了Makefile使其支持生成多个结果(编译多个含有main函数的文件),但总觉得自己的实现不够完美. 今年又遇到这样需求的时候,可在网上找了一圈,发现没有找到能够同时编译得到多个结果的Makefile模板. 目录结构 可以发现,其中,seeker.c 以及 main.c 中都有 main函数,如果按照以往的编译方式,是会引起冲突的 如果将编译的文件写死而引起的不便又违背了make简洁的初衷,那么本人是怎么解决这样的问题的呢?…
一.Makefile简介 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令.linux内核的编译同样也遵循这些规则,具体说明可见kernel/Documentation/kbuild/makefiles.txt 二.简单编写一个Makefile模板 当编译少量的源文件…
编译C++文件,特别是多文件的时候,经常要找模板,这里为了后面方便,就自己做了一个模板. makefile模板:Makefile # Object files to either reference or create #OBJECTS = Proj2.o Blackjack.o Deck.o Card.o Hand.o Player.o OBJECTS = phash.o # The executable file that will be created at the end EXEC =…
# 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…
这里一份万能makefile模板,写opencv项目时候使用的. 前提是提前配置好 包管理工具 pkg 然后就不用每次都去 -lopencv_xxx了. ###################################### # ###################################### #source file #源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件 SOURCE := $(wildcard *.c) $(wildcard *.cpp) OB…
目录 Makefile模板 用法 编译C程序 编译C++程序 其他 Tips Makefile模板 CC = gcc LD = $(CC) TARGET = $(notdir $(CURDIR)) SRC_DIR = . INCLUDE_DIR += . C_FLAGS = -g -Wall LD_FLAFS = LD_LIBS = INCLUDES = -I$(INCLUDE_DIR) ifeq ($(CC), g++) TYPE = cpp SRCS += $(wildcard $(SRC_…
Makefile的C++的一个模板,可用于根据不同源文件,生成多个可执行文件 . CC = g++ DIR_INC = ./include DIR_SRC = ./src DIR_OBJ = ./obj DIR_BIN = ./bin # SRC = $(wildcard ${DIR_SRC}/*.cpp ) SRC_Server = $(wildcard ${DIR_SRC}/server.cpp ${DIR_SRC}/test1.cpp) SRC_Client = $(wildcard ${…
一 生成动态链接库的模板: ####################### # Makefile ####################### # compile and lib parameter CC := g++ LIBS := LDFLAGS := DEFINES := INCLUDE := -I. CFLAGS := CXXFLAGS:= # link parameter #LIB := libfunc.so LIB := libfunc.a #link $(LIB):func.o…
makefile不是总用到,每次用到的时候总要重新找资料,有点麻烦(怪自己基础知识不扎实,汗).留一个通用模板放这,方便以后使用 CC = gcc CXX = g++ LINK = g++ CFLAGS = -g -Wall -O2 TARGET = mk0 SRCS = $(wildcard *.cpp) SRCS += $(wildcard *.c) CXX_OBJS = $(patsubst %.cpp, %.o, $(wildcard *.cpp)) C_OBJS = $(patsubs…
我在网上先找了一个最简单的makefile. 建立一个 TestCpp 目录,简单的写几行代码,命名为“TestCpp.cpp”,然后和这个最简单的 makefile 一起扔进去: TestCpp.cpp: #include <iostream> using namespace std; int main(int argc, char *argv[]) { cout<<"Hello C++ Language !\n"<<endl; ; } makef…
第一次自己写makefile,记录一下 #Compilers #CXX=/opt/compiler/gcc-/bin/g++ CXX = g++ #Includes INCLUDE_FLAGS = -I${OPENCV_PATH}/include/ #Libraries LIB_FLAGS = -L${OPENCV_PATH}/lib/ #DLLs LD_FLAGS = -lopencv_objdetect -lopencv_highgui -ljasper -ljpeg -ltiff -lpn…
本文把makefile 分成了三份:生成可执行文件的makefile,生成静态链接库的makefile,生成动态链接库的makefile. 这些makefile都很简单,一般都是一看就会用,用法也很容易,只需要把它们拷贝到你的代码的同一目录下,然后就可以用 make 来生成目标文件了. 下面是三个makefile的源代码: 1.生成可执行文件的makefile ###################################### # ###########################…
CC = gcc LD = gcc CFLAGS = -Wall -c LDFLAGS = SRC_DIRS = src test INC_DIRS = inc OBJ_DIR = obj OUT_DIR = out SRCS = $(foreach DIR, ${SRC_DIRS}, $(wildcard ${DIR}/*.c)) INCS = $(addprefix -I, ${INC_DIRS}) OBJS = $(patsubst %.c, ${OBJ_DIR}/%.o, ${SRCS}…
转自:http://blog.csdn.net/jundic/article/details/17676461 一直想写一个很全很好移植的Makefile模板,我觉得一个完整makefile 应该包含如下内容. 1.可以编译成 动态库.a  静态库.so  或者是直接编译成可执行文件. 2.编译可执行文件可以指定宏 ,自有添加头文件,指定链接的各种库 3.要能过自动生成依赖关系,能准确地捕捉到任何依赖文件的改动. 4.如果是嵌入式系统应该还要指定链接脚本(这里暂不考虑) 下面是我写的一个具备上面…
最近将Makefile的编写进行了整理和提炼了一下,大致分为五个步骤: 编译总共为五个部分 1.设置编译环境 set compile environment 2.获取要编译的源文件,以及把源文件转换为目标文件 ( 源文件和目标文件) source to obj 3.将文件编译为目标文件 OBJing 4.将目标文件链接成可执行文件或(打包为)动态库,或静态库  linking 5.其他方面 clean等 下面给出一个简单的makefile模板(实际项目中可依照此模板进行扩展): 来看看这个模板:…
# # c.cpp混合编译的makefile模板 # # BIN = test.exe CC = gcc CPP = g++ #这里只加入库头文件路径及库路径 INCS = -I"c:/mingw/include" LIBS = -L"c:/mingw/lib" SUBDIRS = #生成依赖信息时的搜索目录,比如到下列目录中搜索一个依赖文件(比如.h文件),例如 -I"./***/" -I"./base/" DEFINC =…
转自https://www.h4ck.org.cn/2013/07/theos-makefile/ theos的makefile写法与其他linux/unix环境下的makefile写法大同小异,但是对于makefile不熟悉的在导入一些dylib或者framework的时候就会变得很蛋疼. 对于framework可以直接通过Frameworks和private frameworks来导入,但是dylib文件却不能那么简单的写进去,如果要引用zlib,那么如果写成xxx_LDFLAGS =  -…
openwrt: Makefile 框架分析 原文链接:blog.chinaunix.net/uid-26675482-id-4704952.html 本篇的主要目的是想通过分析Makefile,了解openwrt编译过程.着重关注以下几点: openwrt目录结构 主Makefile的解析过程,各子目录的目标生成. kernel编译过程 firmware的生成过程 软件包的编译过程 openwrt目录结构 官方源下载速度太度,我从github上clone了openwrt的代码仓库. git c…
theos的makefile写法与其他linux/unix环境下的makefile写法大同小异,但是对于makefile不熟悉的在导入一些dylib或者framework的时候就会变得很蛋疼. 对于framework可以直接通过Frameworks和private frameworks来导入,但是dylib文件却不能那么简单的写进去,如果要引用zlib,那么如果写成xxx_LDFLAGS =  -zlib,虽然在编译的时候不会提示找不到对应的lib库但是却会提示找不到相关的符号. 这个东西的写法…
1.wildcard : 扩展通配符2.notdir : 去除路径3.patsubst :替换通配符 例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub 在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件 建立一个简单的Makefilesrc=$(wildcard *.c ./sub/*.c)dir=$(notdir $(src))obj=$(patsubst %.c,%.o,$(…
函数名称:加前缀函数—addprefix. 函数功能:为“NAMES…”中的每个文件名称加入前缀“PREFIX”.參数“NAMES…”是空格切割的文件名称序列,将“SUFFIX”加入到此序列的每个文件名称之前. 返回值:以单空格切割的加入了前缀“PREFIX”的文件名称序列. 函数说明: 演示样例: $(addprefix src/,foo bar) 返回值为“src/foo src/bar”. 1.wildcard : 扩展通配符2.notdir : 去除路径3.patsubst :替换通配符…
1:首先是Makefile.def: ---------------------------------------- 在所有驱动的makefile中有!INCLUDE $(_MAKEENVROOT)\makefile.def 找到(_MAKEENVROOT)\makefile.def所在地方C:\WINCE500\PUBLIC\COMMON\OAK\MISC(这个路径下真是很多wince的精华所在,sysgen菜单的批处理文件就在这里了) 现在来看看这个makefile.def是什么东西.我觉…
前言 Makefile自动生成头文件依赖是很常用的功能,本文的目的是想尽量详细说明其中的原理和过程. Makefile模板 首先给出一个本人在小项目中常用的Makefile模板,支持自动生成头文件依赖. CC = gcc CFLAGS = -Wall -O INCLUDEFLAGS = LDFLAGS = OBJS = seq.o TARGETS = test_seq .PHONY:all all : $(TARGETS) test_seq:test_seq.o $(OBJS) $(CC) -o…
mooon编译系统介绍(可复用Makefile).pdf(ChinaUnix下载) CSDN下载:http://download.csdn.net/detail/aquester/5626929 mooon编译系统介绍(可复用Makefile) 目录 1. 简要 1 2. 文件组成 1 2.1. 各文件的渊源关系图 2 3. 操作步骤:您需要做的 5 4. 修改configure.ac.in文件 5 5. 修改Make.rule.in文件 6 6. 修改主目录Makefile.am文件 6 7.…
转自:https://blog.csdn.net/srw11/article/details/7516712 1.wildcard : 扩展通配符 2.notdir : 去除路径 3.patsubst :替换通配符 例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub 在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件 建立一个简单的Makefilesrc=$(wildcard *.…
通过之前的学习可以知道,makefile拥有复杂的语法结构,编写与维护都不是很方便于是设计出了专门用来生成Makefile的autotools工具,以减轻制作makefile文件的负担. 自主软件主要以源码形式发布,着需要在多种系统上重新编译.源代码包安装分为3个步骤,configure.make和make install,在构建过程中涉及到许多文件,制作起来十分复杂,使用autotools工具生成Makefile文件,可以大大方便源码安装包的制作. 1.Autotools的工作原理 一个aut…