![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux入门_Makefile
Linux入门时Makefile的小知识点的整理
csdn__XZ
这个作者很懒,什么都没留下…
展开
-
step_4补充:使用分支
使用分支使用如下搭配来进行选择性的编译路径 ifeq(arg1,arg2) /*如果arg1和arg2相等执行这里*/ else /*否则执行这里*/ endif修改Makefile如下: #定义变量 ARCH ?= x86 TARGET = hello_main CFLAGS=-I . DEPS = hello_func.h OBJS = hello_main.o hello_func.o ifeq ($(ARCH),x86) CC = gcc else C原创 2021-01-09 10:59:10 · 210 阅读 · 0 评论 -
step_4 以step_3为基础修改链接规则
以step_3为基础修改链接规则修改后Makefile如下 #step_3 改变默认规则 #定义变量 #cc=gcc #cflags=-i . #deps = hello_func.h #目标文件 #hello_main: hello_main.o hello_func.o # $(cc) -o hello_main hello_main.o hello_func.o #*.o文件的生成规则 #%.o: %.c $(deps) # $(cc) -c -o $@ $&原创 2021-01-09 10:57:40 · 190 阅读 · 0 评论 -
Makefile使用变量 和 step_3 以step_2为基础修改默认规则
基本语法基本语法-赋值“=”: 延时赋值,该变量只有在调用的时候,才会被赋值“:=”:直接赋值,与延时赋值相反,使用直接赋值的话,变量的值定义时就已经确定了。“?=”:若变量的值为空,则进行赋值,通常用于设置默认值。“+=”:追加赋值,可以往变量后面增加新的内容编写Makfile实验,代码如下 VAR_A = FILEA VAR_B = $(VAR_A) VAR_C := $(VAR_A) VAR_A = FILEB VAR_D ?= FILED .phony: chec原创 2021-01-09 10:55:49 · 231 阅读 · 0 评论 -
step2:以step_1 中的Makefile为基础使用.o作为依赖
源代码与step1中一致。Makefile文件修改依赖为.o把依赖文件由C文件改成.o文件,gcc编译命令也做了相应的修改。不过由于 C 编译成同名的.o 文件是 make 的默认规则,所以这部分内容通常不会写上去。修改后的Makefile#hello_main:hello_main.c hello_func.c# gcc -o hello_main hello_main.c hello_func.c -I .#.PHONY:clean#clean:# rm -f *.o hello原创 2021-01-09 10:50:40 · 250 阅读 · 0 评论 -
step_1 添加Makfile文件
step_1 添加Makfile文件在hello_main.c所在目录新建Makefile文件。 mdxz_18@mdxz18:~/lzp/workdir/base_code/linux_app/makefile_step/step_1$ vim Makefile编写Makefile内容如下: hello_main:hello_main.c hello_func.c gcc -o hello_main hello_main.c hello_func.c -I . clean: r原创 2021-01-09 10:48:43 · 166 阅读 · 0 评论 -
step_0_新建演示文件
新建演示源文件func_main.c#include "hello_func.h"int main(){ hello_func(); return 0;}func_func.c#include <stdio.h>#include "hello_func.h"void hello_func(void){ printf("hello ,world.\n"); for(int i=0;i<10;i++) { printf("output i=%d.\n",原创 2021-01-09 10:43:45 · 237 阅读 · 0 评论