m4 不服从展开式?

发布于 2024-09-15 20:01:46 字数 248 浏览 4 评论 0原文

我在这里使用 m4 进行一些文本预处理,它的行为方式我不明白。

这是有问题的部分:

ifdef(`TEST',
    define(`O_EXT', `.obj'),
    define(`O_EXT', `.o'))

这个宏将总是扩展为.o,无论TEST是否被定义(m4 -DTEST) 。

我做错了什么?

I use m4 for a little text preprocessing here, and it behaves in a way I don't understand.

This is the portion in question:

ifdef(`TEST',
    define(`O_EXT', `.obj'),
    define(`O_EXT', `.o'))

This macro will always be expanded to .o, regardless whether TEST is defined (m4 -DTEST) or not.

What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

儭儭莪哋寶赑 2024-09-22 20:01:46

您没有引用 ifdef 的其他参数。试试这个:

ifdef(`TEST', `define(`O_EXT', `.obj')', `define(`O_EXT', `.o')')

You're not quoting the other arguments to ifdef. Try this:

ifdef(`TEST', `define(`O_EXT', `.obj')', `define(`O_EXT', `.o')')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文