首页 > 其他分享 >makefile 进行宏定义的便捷之处

makefile 进行宏定义的便捷之处

时间:2024-05-24 19:06:56浏览次数:12  
标签:mainapp 定义 便捷 makefile STR1 Makefile Program printf MYVERSION

1. Makefile 中:

MYVERSION = 1.0.00000001 CFLAGS += -DMYVERSION=\"$(MYVERSION )\"   all: mainapp  mainapp: mainapp.c gcc $(CFLAGS) -o mainapp mainapp.c     2. c 文件中 // mainapp.c #include <stdio.h>   #ifdef MYVERSION #define    STR(x)    #x #define    STR1(x)     STR(x)  static char version[] = STR1(MYVERSION); #endif   int main() { #ifdef MYVERSION  printf("Program myversion: %s\n", version); #else printf("Program myversion: unknown\n"); #endif return 0; }

当运行make命令时,Makefile会编译mainapp.c并将其链接成mainapp,并且源代码中的MYVERSION宏就包含了Makefile中定义的值

   

标签:mainapp,定义,便捷,makefile,STR1,Makefile,Program,printf,MYVERSION
From: https://www.cnblogs.com/kevinyangkaiguo/p/18211567

相关文章

  • 新定义RD8T36P48使用USCI0的TWI功能点亮OLED
    时间不多,因此先只给出工程,等有时间再添加详细说明现象这是从之前的一个51单片机的程序移植过来的,主要修改了IIC启动和停止,以及数据发送的代码,我现在还不是很满意的一点是发送过程中要等待上一个字节发送完才能接着发送本次字节。我使用的是while循环等待发送完成标志位,......
  • 新定义RD8T36P48点亮LED--汇编
    其实汇编和C语言差不多,简单的东西用汇编挺好,中等及以上复杂度的程序还是C语言更灵活直接在keil新建好工程,选好芯片型号和下载方式,再创建一个.asm文件并添加到工程,工程创建完如图工程配置代码 ORG0000H LJMPMAIN ORG0100HMAIN: MOVA,9AH ORLA,#20H;让P05为......
  • Android 背景资源自定义 ShapeDrawble
    前言制作随时可以编辑的背景图,不需要向UI要背景图。【规则的】ShapeDrawable 是绘制形状的Drawable,定义了基本的几何图形,如(矩形,圆形,线条等)ShapeDrawable 根元素是 <shape/>效果图分别四种形状情况:ectangle(矩形)、oval(椭圆,包括圆)、line(线段)、ring(环形)......
  • 三分钟获知快速自定义表单开发的优势特点
    如果想要轻松实现高效率的流程化办公,可以了解低代码技术平台、快速自定义表单开发等产品。在竞争越来越激烈的职场社会中,很多大中型企业都在对它越来越关注,希望能借助科技的力量打破信息孤岛,实现增值、降本、提效的发展目标。现在一起来了解低代码技术平台、快速自定义表单开发都......
  • Java 异常相关(二):异常处理机制的补充,自定义异常的使用等
    一、前言记录时间[2024-05-22]前置文章:Java异常相关:异常体系结构,异常与错误的区别等本文讲述Java异常相关知识,对异常处理机制进行补充,以及自定义异常的方式。文章对异常知识的描述显然是笼统而简洁的,对于异常的学习,更应注重平时的积累和整理。二、异常处理机......
  • 自定义Feign配置
    java代码的方式写一个配置类publicclassFeignConfig{/***将契约改为feign原生的默认契约。这样就可以使用feign自带的注解了。*@return默认的原生契约*/@BeanpublicContractfeignContract(){returnnewContract.Default......
  • Makefile使用教程1
    规则(Rules):一个Makefile文件由一条一条的规则构成,一条规则结构如下target…(目标):prerequisites…(依赖)recipe(方法)……最简单的Makefilehello:hello.cppg++hello.cpp-ohello#开头必须为一个Tab,不能为空格但通常需要将......
  • kubernetes部署mongoDB 单机版 自定义配置文件、密码、日志路径等
    官方镜像地址:https://hub.docker.com/_/mongo?tab=descriptiondocker版的mongo移除了默认的/etc/mongo.conf,修改了db数据存储路径为/data/db.创建configmap配置,注意不能加fork=true,否则Pod会变成Completed。apiVersion:v1kind:ConfigMapmetadata:name:mongodb-confdat......
  • 智慧社区管理系统:打造便捷、安全、和谐的新型社区生态
    项目背景在信息化、智能化浪潮席卷全球的今天,人们对于生活品质的需求日益提升,期待居住环境能与科技深度融合,实现高效、舒适、安全的生活体验。在此背景下,智慧社区管理系统应运而生,旨在借助现代信息技术手段,对社区服务、物业管理、邻里交流、社区安全等多方面进行全面升......
  • SqlSugar : date绑定到XX失败,可以试着换一个类型,或者使用ORM自定义类型实现
    System.Exception:中文提示:date绑定到Machine失败,可以试着换一个类型,或者使用ORM自定义类型实现EnglishMessage:MachinedatebinderroratSqlSugarEntity(IDataRecord)atSqlSugar.IDataReaderEntityBuilder`1.Build(IDataRecorddataRecord)atSqlSugar.......