GNU M4

Unix 的宏处理器
授权协议 GPL
开发语言 C/C++
所属分类 应用工具、 操作系统工具
软件类型 开源软件
地区 不详
投 递 者 赵越
操作系统 Linux
开源组织
适用人群 未知
 软件概览

GNU M4 是一个实现了传统 Unix 的宏处理器,大部分兼容 SVR4 ,可扩展,例如可处理超过 9 个定位参数。

  • 最近macOS升级到了最新10.13.结果原来的打包脚本就运行失败了,只要make -f 就报错 autom4te: need GNU m4 1.4 or later: /usr/local/bin/m4 1.从题目上查看,应该是m4版本太低导致的,然后这个m4文件的位置在/usr/local/bin/,好,那就进入这里面去查看版本,/usr/local/bin/m4 --version,结果提示

  • GNU m4简介 m4是一种宏处理器,它扫描用户输入的文本并将其输出,期间如果遇到宏就将其展开后输出。宏有两种,一种是内建的,另一种是用户定义的,他们能接受任意数量的参数。除了做展开宏的工作之外,m4内建的宏能够加载文件,执行Shell命令,做整数运算,操纵文本,形成递归等等。m4可用做编辑器的前端,或者单纯作为宏处理器来用。 所有的 Unix 系统都会提供 m4 宏处理器,因为它是 POSIX

  • 在Ubuntu上的Windows 10 bash上,GNU m4安装失败(GNU m4 installation fails on Windows 10 bash on Ubuntu) 我写了这些: wget ftp://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz tar xvzf m4-1.4.17.tar.gz cd m4-1.4.17 ./configure --

  • 本文转载自http://utxz.com/142.html  m4是一个通用的宏处理器,宏处理器(或预处理器)一般用作文本替换工具。最终用户经常会用它来处理要反复使用的文本模板,典型的是用于编程工具,还会用于文本编辑和文字处理工具。m4是POSIX标准中的一部分,所有版本的UNIX下都可用。虽然这种语言可以单独使用,但大多数人需要m4仅仅是因为GNU autoconf中的“configure”脚本

  • -------------------------------------------------------------------------------------- GNU M4介绍: GNU M4 是一个传统Unix宏处理器的实现。它主要兼容 SVR4,尽管它有一些扩展(例如,处理超过9个位置参数的宏)。GNU M4 同样有内置的函数用来包含文件,运行shell命令,做算术运算,等等。

  • Introduction to GNU M4 GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4(System V Release 4,是UNIX操作系统的一种新的内核标准) compatible although it has some extensions (for exa

  • 上一篇:http://segmentfault.com/a/1190000004131031 难以驾驭的引号 对于自己定义的宏,建议先在你的大脑中对它进行逐步展开,确信自己完全理解这个展开过程。如果大脑的堆栈不够用,可以用纸和笔记录展开过程。这样可以在很大程度上提高宏定义的正确性。 m4 宏调用的复杂之处在于嵌套的宏调用——在一个宏的展开结果中调用了其他宏。例如,宏 A 的展开结果中调用了宏 X,

  • 上一篇:http://segmentfault.com/a/1190000004128102 递归 现在再强调一次,m4 会将当前宏的展开结果插入到待读取的输入流的前端。也就是说,m4 会对当前宏的展开结果再次进行扫描,以处理嵌套的宏调用。这个性质决定了可以写出让 m4 累死的递归宏。 例如: define(`TEST', `TEST') TEST 当 m4 试图对 TEST 进行展开时,它就会永

  • -rw-r--r--   1 root     root     1657870 May 28 2012 m4-1.4.16.tar.gz [email protected] # gunzip m4-1.4.16.tar.gz [email protected] # tar -xvf m4-1.4.16.tar # cd m4-1.4.16/ # ./configure && make && ma

  • 错误  libtoolize: error: One of these is required: libtoolize: gm4 gnum4 m4 libtoolize: error: Please install GNU M4, or 'export M4=/path/to/gnu/m4'. aclocal ./autogen.sh:行10: acloca

 相关资料
  • #include <stdio.h> #define NAME "Joe" int main() { printf ("Hello %s\n", NAME); return 0; } 技巧 使用gcc -g编译生成的程序,是不包含预处理器宏信息的: (gdb) p NAME No symbol "NAME" in current context. 如果想在gdb中查看宏信息,可以使

  • 在我的代码中,我使用了预处理器宏 但后来我意识到我需要一个内联函数,并最终得到了以下代码 它有效吗?这似乎有效,但不会造成任何潜在问题吗?

  • 我正在尝试实现一个正确的枚举到字符串宏,它将自动实现枚举值和代码中的名称之间的关联。 例如,我想定义一个名为“test”的新宏,如下所示: 这样,通过调用,我可以访问字符串。目前,这个的当前实现如下所示: 虽然当我这样做时,处理的枚举没有得到正确的名称分隔: 因为我希望使用而不是。 有没有办法用逗号分隔来展开名称? 干杯!

  • 当我在一个大型项目中工作时,我偶然发现了一个错误,在这个错误中,一个宏没有正确地扩展。结果输出是“”,但被定义为“”,因此很明显输出应该是“”。 “没问题”,我心想。“这可能是一些愚蠢的错误,毕竟这里有一些讨厌的宏,有很多地方会出错”。正如我所想的那样,我将行为不端的宏隔离到它们自己的项目中,大约200行,并开始在MWE上工作以确定问题所在。200行变成了150,又变成了100,然后是20,10…

  • 我不是一个好的程序员,老实说,在这种情况下,我找不到一个舒适的解决方案。 我有一个从视频字幕派生的文本文件,我想创建一个更方便的文本文件。我在这里插入一个gif来显示我想做什么。 我用word office VB创建了一个宏,但我并不满意。 你对此有什么建议吗? 简单的宏Word Office 中的简单文本: 简单文本输出:

  • 我知道这已经发布在其他地方,这并不是一个困难的问题,但我对在斐济编写宏非常陌生,甚至很难理解各种在线资源中描述的解决方案。 我有一系列的图像都在同一个文件夹中,希望对它们应用相同的操作,并将生成的excel文件和图像保存在输出文件夹中。具体来说,我想打开,平滑图像,进行最大强度Z投影,然后将图像阈值设置为相同的相对值。 这个阈值是导致问题的一个步骤。通过相对值,我的意思是我想设置阈值,以便包含强度

  • 我使用Inno Setup#定义指令来定义安装程序中有关软件包的所有信息,然后使用其他指令来提取该字符串的部分。例如,使用以下命令,将返回05414。 我在脚本和代码中使用这种方法,而且效果很好。然而,我遇到了一种情况,即通过编程生成字符串会很方便,而且我很难让它正常工作。例如,我想做以下事情。 的参数是正确的,但我收到一个编译器错误消息 [ISPP]格式“%”没有参数。 它似乎不喜欢行字符串中的

  • 代码中的模式通常预示着需要新的抽象。这一规则对于宏代码本身也一样适用。如果几个宏的定义在形式上比较相似,我们就可能写一个编写宏的宏来产生它们。本章展示三个宏定义宏的例子:一个用来定义缩略语,另一个用来定义访问宏,第三个则用来定义在 14.1 节中介绍的那种指代宏。 16.1 缩略语 宏最简单的用法就是作为缩略语。一些 Common Lisp 操作符的名字相当之长。它们中最典型的 (尽管不是最长的)