【发布时间】:2013-01-12 06:56:03
【问题描述】:
我想在 autotools 项目中使用 -Wall 和 -Werror 作为 gcc 的标志,但我不想将它们放在我的 configure.ac 中。
因此,我尝试使用./configure CFLAGS='-Wall -Werror',却从我的AC_SEARCH_LIBS 宏调用之一中得到错误:
AC_SEARCH_LIBS([pow], [m], , AC_MSG_ERROR([Could not find standard math library.]))
使用添加的CFLAGS 运行配置时出现错误:
configure: error: Could not find standard math library.
我在这里做错了什么?没有设置 CFLAGS 变量,配置工作正常。
【问题讨论】:
-
检查您的配置日志文件以获取来自它尝试运行该步骤的输出。您会看到错误是什么,并且可能可以修复它。
-
日志文件告诉我:
error: conflicting types for built-in function 'pow' [-Werror],在尝试编译 conftest.c 之后。从 CFLAGS 中删除 -Werror 可以解决这个问题,但这对我来说并没有什么用处。 -
因此修复原型以匹配生成它的任何远足,然后重试。
-
@Carl 你不能那样做。这是一个已知的问题; autoconf 使用的测试通常会带有警告,并且通过 -Werror 将警告提升为错误将导致测试失败。处理此问题的合理方法(如果使用 automake)是有条件地将标志添加到
AM_CFLAGS(条件是配置时间检查CC接受标志)。