首页 > 其他分享 >单个makefile构建单目录的工程

单个makefile构建单目录的工程

时间:2023-01-04 11:13:13浏览次数:31  
标签:bin OBJ makefile CROSS COMPILE 构建 单个 test hello1

使用单个makefile构建单目录的工程适用于一些简单的测试场景

目录树如下


➜  test_pro tree -h  
.
└── [4.0K]  test_pro1
    ├── [ 800]  Makefile
    ├── [ 287]  hello1.c
    └── [ 223]  hello1.h

1 directory, 3 files

makefile的源文件如下

SRC = $(wildcard *.c)                   # 获取当前目录下的所有.c文件
OBJ := $(patsubst %.c, %.o, $(SRC))     # 将所有的.c文件换成.o文件
# OBJ = $(SRC:.cc=.o)

EXEC = hello1.bin


DFLAGS ?=                               # 库的链接参数
CFLAGS ?=                               # 参数信息
CROSS_COMPILE ?=                        # 没有定义交叉编译器时,直接用gcc


CC := $(CROSS_COMPILE)gcc               # 编译器 按需就行
AR = ${CROSS_COMPILE}ar
STRIP = ${CROSS_COMPILE}strip
AS = ${CROSS_COMPILE}as
LD = ${CROSS_COMPILE}lr
RANLIB = ${CROSS_COMPILE}ranlib
NM = ${CROSS_COMPILE}nm


.PHONY : clean all
all: $(EXEC)

$(EXEC): $(OBJ)
        $(CC) $(OBJ) -o $@ $(CFLAGS) $(DFLAGS)

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

clean:
        rm -rf $(OBJ) $(EXEC)#

测试


➜  test_pro1 make clean all
rm -rf  hello1.o      hello1.bin
gcc                -c hello1.c -o hello1.o  
gcc                 hello1.o      -o hello1.bin  
➜  test_pro1 ./hello1.bin 
hello 1 in 
➜  test_pro1 

标签:bin,OBJ,makefile,CROSS,COMPILE,构建,单个,test,hello1
From: https://www.cnblogs.com/tccxy/p/17024284.html

相关文章

  • makefile的常用函数及特殊字符
    makfile的常用函数下面的常用函数掌握以下,也不用记得住,用时候过来取就行,基本就没问题了$(wildcard*.c)#同一类型的文件*.h*.cpp等$(wildcard$(SRC)/*.c)#同一类型......
  • 低代码如何构建响应式布局前端页面
    “你开发的界面为啥在我的屏幕里这么小啊?”“这个界面为啥在我这里会出现横向滚动条啊?”大家在进行前端界面开发时,有没有遇到这些类似的问题呢?又是如何解决的呢?页面响应......
  • 基于 EventBridge API Destination 构建 SaaS 集成实践方案
    作者:赵海引言事件总线EventBridge是阿里云提供的一款无服务器事件总线服务,支持阿里云服务、自定义应用、SaaS应用以标准化、中心化的方式接入,并能够以标准化的CloudE......
  • JetPack — 边缘计算设备构建AI应用全面解决方案
    ​​JetPackSDK|NVIDIADeveloper​​NVIDIAJetPackSDK是构建AI应用的全方面解决方案。包含适用于Linux操作系统的最新Linux驱动包(L4T)以及用于深度学习、计算......
  • 将 RAC 克隆到单个实例后,如何删除对其他线程的任何引用
    背景 RAC数据库的节点克隆过程创建了一个克隆的单实例RAC数据库,因此新的克隆数据库包含一个额外的线程/实例,就像在原始RAC环境中一样。下面详细记录一下RAC变单机的......
  • jenkins快速入门,自动构建一个hello world项目(devops,ci/cd)
    ​​jenkins​​​是一个非常老牌的​​ci/cd​​​工具,它是一款使用​​Java​​​写的开源自动化应用。可以通过界面或​​Jenkinsfile​​​告诉它执行什么任务,何时执行,......
  • 从源代码构建TensorFlow流程记录
    京东科技隐私计算产品部曹雨晨为什么从源代码构建通常情况下,直接安装构建好的.whl即可。不过,当需要一些特殊配置(或者闲来无事想体会TensorFlow构建过程到底有多麻烦)的时......
  • 从源代码构建TensorFlow流程记录
    京东科技隐私计算产品部曹雨晨为什么从源代码构建通常情况下,直接安装构建好的.whl即可。不过,当需要一些特殊配置(或者闲来无事想体会TensorFlow构建过程到底有多麻烦)的......
  • 构建Android应用程序
    Android应用程序(俗称为应用程序)使用Gradle作为构建工具,通常通过唯一受支持的IDE,AndroidStudio。许多资源可用于学习如何构建Android应用程序。然而,本指南着重于创建新的A......
  • webpack4.15.1 学习笔记(二) — 配置及开发环境构建
    目录基本安装配置文件管理资源管理输出构建一个开发环境使用sourcemap选择一个开发工具观察模式webpack-dev-serverwebpack-dev-middlewarewebpack......