首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“帮助”字符串变量替换“配置--帮助”

“帮助”字符串变量替换“配置--帮助”
EN

Stack Overflow用户
提问于 2014-11-30 22:01:03
回答 2查看 421关注 0票数 4

我有一个字符串,我想多次使用它来输出configure --help。所以我试着在configure.ac中做这样的事情

代码语言:javascript
运行
复制
AC_ARG_ENABLE([foobar],
              AS_HELP_STRING([--enable-foobar], [$foobar_help_str]))

但是没有进行任何扩展或替换,所以输出只是$foobar_help_str

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-14 04:00:00

将字符串定义为M4宏:

代码语言:javascript
运行
复制
m4_define([FOOBAR_HELP_STR], [Turn on the foobar features])
AC_ARG_ENABLE([foobar], [AS_HELP_STRING([--enable-foobar], FOOBAR_HELP_STR)])
票数 3
EN

Stack Overflow用户

发布于 2016-09-09 07:50:40

FYI,如果您查看生成的configure脚本,您会发现帮助文本都预先格式化为一个引用的“这里文档”(由cat发送到stdout )中的一个文本块,也就是说,在脚本运行时(即您以./configure --help的身份运行它时)没有任何机会发生任何形式的替换。毫无疑问,这是一个bug,但另一方面,由于autoconf为漂亮打印帮助文本所做的处理是在不知道最终脚本将如何执行的情况下完成的,因此不知道可能设置哪些变量以及它们可能承担的值范围,因此autoconf无法知道在其帮助文本格式中为任何变量在运行时可能分配了多少空间。

如果只需要二进制选项(即不使用/不需要[=ARG]特性),则应该可以编写智能包装器宏,该宏将根据默认设置生成适当的帮助文本,如果该默认值本身首先被定义为M4宏,其方式类似于accepted answer中的建议。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27218758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档