首页 > 其他分享 >Makefile

Makefile

时间:2023-01-10 13:33:23浏览次数:43  
标签:objs %. bar 示例 CC Makefile 默认值

简单示例

src = $(wildcard ./*.c)
objs = $(patsubst %.c, %.o, $(src))
target = app

$(target):$(objs)
  $(CC) $^ -o $@

%.o:%.c
  $(CC) -c $< -o $@

.PHONY:clean
clean:
  rm -f $(objs) app

预定义变量

AR : 归档维护程序的名称,默认值为 ar
CC : C 编译器的名称,默认值为 cc
CXX : C++ 编译器的名称,默认值为 g++
$@ : 目标的完整名称
$< : 第一个依赖文件的名称
$^ : 所有的依赖文件

函数

wildcard

示例:$(wildcard ./*.c)

获取指定目录下指定类型的文件列表,返回的结果是 add.c sub.c mult.c div.c main.c

patsubstr

示例:$(patsubst %.c, %.o, x.c bar.c)

将 x.c bar.c 中符合模式 %.c 的单词替换为 %.o,返回结果是 x.o bar.o

标签:objs,%.,bar,示例,CC,Makefile,默认值
From: https://www.cnblogs.com/cong0221/p/17039892.html

相关文章

  • makefile入门
    安装makesudoaptinstallmake命令行指令make在当前目录自动寻找makefile或Makefile文件规则:一、一个makefile可有多个规则规则的格式:目标...:依赖...命令(Shell......
  • Linux - Makefile
    1.make工具简介make工具是一个根据makefile文件内容,针对目标(可执行文件)进行依赖性检测(要生成该可执行文件之前要有哪些中间文件)并执行相关动作(编译等)的工具。而这个make......
  • makefile生成静/动态库
    通过makefile生成静态库和动态库目录树➜app_hellotree-h.├──[280]app_hello.c├──[218]app_hello.h└──[997]makefile0directories,3f......
  • 多个makefile构建多个目录的工程文件(大工程基本如此)
    通过多个层级的makefile构建整个工程级别的makefile,大工程如果不使用cmake等,基本如此组织,linux内核也是这样哈目录树➜test_pro3tree-h.├──[4.0K]app_1│......
  • 单个makefile构建多目录的工程
    单makefile构建多个目录的工程适用于构建稍微复杂一些的工程目录树如下➜test_pro2tree-h.├──[4.0K]app_1│├──[272]app1.c│└──[......
  • 单个makefile构建单目录的工程
    使用单个makefile构建单目录的工程适用于一些简单的测试场景目录树如下➜test_protree-h.└──[4.0K]test_pro1├──[800]Makefile├──[......
  • makefile的常用函数及特殊字符
    makfile的常用函数下面的常用函数掌握以下,也不用记得住,用时候过来取就行,基本就没问题了$(wildcard*.c)#同一类型的文件*.h*.cpp等$(wildcard$(SRC)/*.c)#同一类型......
  • Linux下gcc命令运行c程序以及makefile文件
    GCC原名为GNUC语言编译器(GNUCCompiler),因为它原本只能处理C语言。GCC很快地扩展,变得可处理C++。后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective-C......
  • 生成 makefile
     Makefile.am和makefile.in生成Makefilehttps://www.cnblogs.com/bigbear1385/p/6604765.htmlMakefile.am和makefile.in生成Makefile很多时候,我们在网上下载的linux开......
  • linux Makefile 如何将生成的 .o 文件放到指定文件夹
    一、Makefile文件为了方便分析,直接上文件,Makefile文件中的内容如下所示:##Makefile#编译的.o文件和.c文件在同一路径下#$(info"start...")#可执行文件名PROJE......