gpt4 book ai didi

c - 在 Autoconf 项目中强制执行严格的 C99

转载 作者:太空狗 更新时间:2023-10-29 16:49:24 26 4
gpt4 key购买 nike

我有一个用 C 编写的程序,它使用 Autoconf。它在 configure.ac 中使用 AC_PROG_CC_C99,当与 gcc 一起使用时,它会转换为 -std=gnu99 编译器选项。该程序严格按照 C99 规范编写,未使用任何 GNU 扩展。

我们应该如何设置 Autoconf 以使编译器强制执行它?

最佳答案

我通常使用 m4 宏来检查给定的编译器是否接受某个 CFLAG。

将以下内容放入您的 aclocal.m4(我通常使用 m4/ax_check_cflags.m4 代替):

# AX_CHECK_CFLAGS(ADDITIONAL-CFLAGS, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
#
# checks whether the $(CC) compiler accepts the ADDITIONAL-CFLAGS
# if so, they are added to the CXXFLAGS
AC_DEFUN([AX_CHECK_CFLAGS],
[
AC_MSG_CHECKING([whether compiler accepts "$1"])
cat > conftest.c++ << EOF
int main(){
return 0;
}
EOF
if $CC $CPPFLAGS $CFLAGS -o conftest.o conftest.c++ [$1] > /dev/null 2>&1
then
AC_MSG_RESULT([yes])
CFLAGS="${CFLAGS} [$1]"
[$2]
else
AC_MSG_RESULT([no])
[$3]
fi
])dnl AX_CHECK_CFLAGS

并从 configure.ac 中调用它,例如

AX_CHECK_CFLAGS([-std=c99 -pedantic])

关于c - 在 Autoconf 项目中强制执行严格的 C99,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10466084/

26 4 0
文章推荐: javascript - 如何在用户滚动经过某个 div 时更改 CSS
文章推荐: angular - 在 observable 上使用异步管道并将其绑定(bind)到 html 中的局部变量