
Makefile
猿来是码农
这个作者很懒,什么都没留下…
展开
-
Makefile 获取源文件
makefile 获取.c 或 .cpp源文件进行编译,以下总结了3种方法,网友们若还有其他方式的可以在下方评论区添加啊。上面两种都是获取当前目录下的所有源文件,那如果是多目录呢?这时候 foreach 就用得上了。1,用 makefile 的 wildcard 函数。3,makefile 的 foreach 函数。2,用 shell 命令。结果和上面是一样的。原创 2023-03-22 19:02:30 · 1028 阅读 · 0 评论 -
Makefile -C 实例
有这样一个工程,包含了多个模块,需要把每个模块编译成动态库,即.so 文件,那就需要这样一个脚本放置在工程目录下,执行的时候会到每个模块下进行编译。但前提是每个模块下要有对应的Makefile文件,即怎么编译是每个模块的事情。然后我工程目录下有一个shell 脚本,主要用到了 Makefile -C 参数,它会先切到指定的目录下执行 Makefile 然后再返回到当前目录继续执行。脚本里指定了格式,只要按照格式输入即可执行对应的操作。原创 2022-11-08 23:15:52 · 1040 阅读 · 0 评论 -
Linux下编译一个静态库的Makefile
编译json静态库,只是用来作练习,记录一下,供以后查找方便。目录结构如下:所需头在目录include/json 下,源文件在src目录下,Makefile如下:COMPILE_DIR = compileLIB_DIR = lib#CROSS = arm-himix200-linux-CPP = $(CROSS)g++ -std=c++11CFLAGS = -Werror -gINCLUDE = -I./includeAR = ar -rcsSRCS_C...原创 2022-05-12 19:19:40 · 1273 阅读 · 0 评论 -
Makefile判断自定义变量
我们知道makefile中判断变量是用ifeq,这个ifeq既能判断命令行传进来的变量,又可以判断makefile内自定义的变量。ifeq ($(platform), )files:=$(foreach directory, $(dirs), $(wildcard $(directory)/*.config))OBJ:=$(notdir $(files))else$(info no such platform of $(platform)) #需要顶格写#####如果不为空,说明定义了编译原创 2022-02-14 17:38:16 · 3849 阅读 · 0 评论 -
Makefile中的$
在Makefile中,$符号一般有三种用法:1,变量引用,如2,函数调用,如:3,shell 命令,如:在Makefile中还有一个$$的用法,如:SRCS=$(shellls-t|grep"\.cpp$$"|head-1),两个$$中的一个是shell当中要用到,表示匹配指定的结尾字符,另外一个是转义,即:在执行shell命令中要用到$符号时,需要进行转义。那这条语句的意思是:找到最近修改的cpp文件。SRC = $(shell ls -t | ...原创 2021-08-25 20:41:30 · 10969 阅读 · 0 评论 -
Makefile 判断目录或文件是否存在
没找Makefile自带的判断目录或文件是否存在的命令,但我们可以使用shell命令。如:test = $(shell if [ -d $(DIR_TEST) ]; then echo "exist"; else echo "noexist"; fi)$(info $(test))all: $(TARGET) $(OBJD)ifeq ("$(test)", "noexist") $(shell mkdir $(DIR_TEST))endif注意:1,ifeq 判断时,$(test原创 2021-02-21 23:17:23 · 14467 阅读 · 1 评论 -
Makfile 自动依赖实例解析
自用的Makefile实例,平时练习使用。INTERMEDIATEDIR = compile#SRCS = $(wildcard *.cpp)SRCS = $(shell ls -t | grep "\.cpp$$" | head -1)OBJS = $(patsubst %.cpp, $(INTERMEDIATEDIR)/%.o, $(SRCS))OBJD = $(patsubst %.o, %.d, $(OBJS))TARGET = a.outCPP = g++ --std=c++原创 2021-02-21 22:24:21 · 178 阅读 · 0 评论 -
Makefile -C 参数
在Makefile 中,-C参数常用来实现递归调用,加该参数选项,意为进入指定目录,并执行指定目录下的Makefile.用法: $(MAKE) -C dir例如:有Makefile文件,如下LIB_DIR = ./create_liball:$(MAKE) -C $(LIB_DIR)则在当前目录下执行make 时,首先会切换到目录create_lib,再执行此目录下的Mak...原创 2019-07-21 11:23:43 · 2701 阅读 · 0 评论 -
Makefile 的打印输出
makefile 里如果用echo进行打印的话必须放在标签之后,否则会出现语法错误。用以下语句在任意地方打印1,$(info "info here"),输出时不带行号2, $(warning "CFLAGS = $(CFLAGS)"), 带行号3,$(error "CFLAGS = $(CFLAGS)"),带行号,makefile直接停止执行...原创 2019-08-10 15:42:52 · 4161 阅读 · 0 评论