如何使用autoconf为#define指定值?

6
我正在尝试使用宏定义 SYSV386_COMPAT 0 来解锁Gnu binutils的某些FPU操作码生成方式。
我可以轻松地进入头文件并手动设置该值,但是如何调用配置脚本以便在命令行上指定等同于#define SYSV386_COMPAT 0 的内容呢?如果可能的话,我更喜欢在命令行上指定一些东西(因为该功能是传递的,我认为我不应该篡改源代码)。话虽如此,我已经尝试阅读至少一些FM,并且在binutils/configure.ingas/configure.in 中插入 AC_DEFINE(SYSV386_COMPAT, 0) ,但都没有成功。

我在这里没有足够的积分来回答自己的问题,我需要再等几个小时,让像你们这样有帮助的人为我回答一个我已经找到答案的问题。在那之前,我会使用 ./configure CFLAGS=-DSYSV386_COMPAT=0 ... - Michael_73
你应该使用 CPPFLAGS 而不是 CFLAGS。这将允许设置默认的 CFLAGS,以便获得优化效果。此外,惯例是将预处理器标志放在 CPPFLAGS 中。 - William Pursell
谢谢William,这是非常受欢迎的建议。 - Michael_73
1个回答

4

好的,继续搜索其他带有autoconf标记的答案后,我找到了答案的第二条评论。

我能够使用类似的语法来调用configure以获得我想要的结果:

./configure CPPFLAGS=-DSYSV386_COMPAT=0 --prefix=/path/to/my/deploy/dir

感谢William Pursell在上面的评论中指出使用CPPFLAGS而不是CFLAGS的好处,也感谢任何准备回答这个问题的人。如果您对解决此问题的“最佳”方法有任何进一步的评论,请在此线程中添加,以供后来者参考。
祝一切顺利,
迈克尔

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接