4

我是 automake 的新手,但通过文档找到了自己的方式,并按照我的喜好构建了所有内容。但是,我目前打开了 CFLAGS="-Wall -Werror" 。虽然这对 gcc 非常有用,但我假设有人将使用非 gcc 编译器构建我的代码。检测是否正在使用 GCC 并仅为 GCC 设置这些标志的正确方法是什么?

编辑

解决方案如下所示:

  1. 下载http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html并将宏放在项目的 ./m4/ 目录中。
  2. 将以下行添加到您的 configure.ac:

    AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS -Wall"], [], [])
    AX_CHECK_COMPILE_FLAG([-Werror], [CFLAGS="$CFLAGS -Werror"], [], [])
    

编辑 2

这个宏也可能比 -Wall 更有用,因为它对多个编译器做同样的事情:http ://www.gnu.org/software/autoconf-archive/ax_cflags_warn_all.html

4

1 回答 1

4

您可以使用 Autoconf 宏(例如AX_CHECK_COMPILE_FLAG.

于 2012-12-19T14:11:35.143 回答