最近在分析speex代码,发现编译过程中需要的一个speex.m4文件不知道是何方神圣,怀着对未知知识的渴望,跑到

某哥和某基问了一下,算是认识了,为了方便以后经常见面,这里就做个记录吧。

  M4实际上是一种编程语言,后缀是.m4,说明这个文件是使用.m4写的,说的专业一点,这实际上就是一个通用宏处理器。

经常看linux下应用程序的朋友可能熟悉它,因为它经常被用来生成Makefile的脚本语言来使用。

  在某基上,是这样介绍这个语言的使用的:

m4是POSIX标准中的一部分,所有版本的UNIX下都可用。虽然这种语言可以单独使用,但大多数人需要m4仅仅是因为GNU autoconf中的“configure”脚本依赖它。

宏处理器(或预处理器)一般用作文本替换工具。最终用户经常会用它来处理要反复使用的文本模板,典型的是用于编程工具,还会用于文本编辑和文字处理工具。

  想详细了解这个语言的,可以参考:

  1 https://zh.wikipedia.org/wiki/M4_(%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80)   介绍了这个语言的特性,历史,作用等。

  2 https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_72/com.ibm.aix.genprogc/m4macro.htm  介绍了该语言的详细使用规则。

详解m4文件的更多相关文章

  1. [转]文件IO详解(二)---文件描述符(fd)和inode号的关系

    原文:https://www.cnblogs.com/frank-yxs/p/5925563.html 文件IO详解(二)---文件描述符(fd)和inode号的关系 ---------------- ...

  2. MFC中文件对话框类CFileDialog详解及文件过滤器说明

    当前位置 : 首页 » 文章分类 :  开发  »  MFC中文件对话框类CFileDialog详解及文件过滤器说明 上一篇 利用OpenCV从摄像头获得图像的坐标原点是在左下角 下一篇 Word中为 ...

  3. ***PHP $_FILES函数详解 + PHP文件上传 move_uploaded_file() 参数的正确写法

    PHP $_FILES函数详解 在PHP中上传一个文件建一个表单要比ASP中灵活得多.具体的看代码. 如:  复制代码代码如下: <form enctype="multipart/fo ...

  4. hadoop2.7作业提交详解之文件分片

    在前面一篇文章中(hadoop2.7之作业提交详解(上))中涉及到文件的分片. JobSubmitter.submitJobInternal方法中调用了int maps = writeSplits(j ...

  5. 详解bootstrap-fileinput文件上传控件的亲身实践

    经理让我帮服务器开发人员开发一个上传文件功能界面,我就想着以前使用过bootstrap-fileinput插件进行文件上传,很不错.赶紧就撸起来了. 1.下载压缩包.插件地址https://githu ...

  6. 详解xml文件描述,读取方法以及将对象存放到xml文档中,并按照指定的特征寻找的方案

    主要的几个功能: 1.完成多条Emp信息的XML描述2.读取XML文档解析Emp信息3.将Emp(存放在List中)对象转换为XML文档4.在XML文档中查找指定特征的Emp信息 dom4j,jaxe ...

  7. php中fopen函数用法详解(打开文件)

    介绍下php中的fopen函数. 1.resource  fopen(string  $filename, string $mode [,bool $use_include_path [, resou ...

  8. discuz默认模板文件结构详解-模板文件夹介绍

    | — template — default   系统内置风格模板(默认风格)| — template — default  – discuz_style_default.xml  风格安装文件,可用 ...

  9. Linux常用命令详解-目录文件操作命令

    来源:https://www.linuxidc.com/Linux/2018-04/151801.htm 现实中,服务器(包含Linux,Unix,Windows Server)一般都摆放在机房里,因 ...

随机推荐

  1. 使用Composer安装ThinkPHP5

    1.Windows 系统,下载并运行 Composer-Setup.exe. 2.安装compose.PHP采用的是wampserver集成开发环境(这也之后的问题埋下伏笔). 3.然后在命令行下面, ...

  2. ASP.NET Core Razor 视图组件

    视图组件简介 在新的ASP.NET Core MVC中,视图组件类似于局部视图,但它们更强大.视图组件不使用模型绑定,仅依赖于您在调用时提供的数据. 视图组件特性: 呈现页面响应的某一部分而不是整个响 ...

  3. 32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式

    32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式 一丶RadAsm的配置和使用 用了怎么长时间的命令行方式,我们发现了几个问题 1.没有代码提醒功能 2.编写代码很慢,记不住各 ...

  4. JDBC(一)之细说JDBC

    Properties info = new Properties();//要参考数据库文档 info.setProperty("user", "root"); ...

  5. 吐槽下微软的vs code编辑器

    缺点:不能同时打开多个文件夹(打开多个文件夹得先ctrl+shift+N窗口或者除非你的所有项目文件都在同一个文件夹目录下) 优点是支持用户设置以及提供很多插件 // 将设置放入此文件中以覆盖默认设置 ...

  6. 个人作业(2)---英语学习APP案例分析

    第一部分 调研, 评测 1.下载并使用,描述最简单直观的个人第一次上手体验. PC上的必应词典主页面与其他英语学习APP类似,一些英文读物的推送,但是每日阅读需要去浏览器去看有点不太方便,我觉得直接在 ...

  7. java可访问修饰符

    修饰符 同一个类中 同一个包中 不同包的子类 不提供包的非子类 private √ friendly(省略) √ √ protected √ √ √ public √ √ √ √

  8. 【Alpha】Daily Scrum Meeting——Day6

    站立式会议照片 1.本次会议为第五次Meeting会议: 2.本次会议在上午大课间09:40,在禹州楼召开,本次会议为30分钟讨论昨天的任务完成情况以及接下来的任务安排. 燃尽图 每个人的工作分配 成 ...

  9. 201521123065《java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 1.多线程的临界资源:启动多个线程同时运行时,需要同时访问共同的资源,导致结果的不正确性: 2.原子性操作:只进行 ...

  10. 201521123002《Java程序设计》第11周学习总结

    作业参考文件 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5 ...