autoconf和automake与-O2对比-O3

bma*_*ies 2 automake autoconf

我的configure.ac包含

AC_PROG_CXX
Run Code Online (Sandbox Code Playgroud)

和我的Makefile.am包含

AM_CXXFLAGS= -Werror -O3
Run Code Online (Sandbox Code Playgroud)

除了O3之外,生成的'configure'脚本继续向混合添加-O2.

我有这种怀疑,我应该在configure.ac中做一些事情来声明我对O3的偏好,但是我在文档中找不到它.我如何告诉它我想控制优化级别?

Wil*_*ell 5

不,您不应该向configure.ac添加任何内容以指示-O3的首选项.那种东西属于用户的CONFIG_SITE,不属于configure.ac

但是,如果您坚持违反惯例,您可以执行以下操作:

: ${CXXFLAGS=-Werror -O3}

请注意,此行必须出现在AC_PROG_CXX之前(或任何AC_REQUIRES它的宏,例如LT_INIT,因为这将导致AC_PROG_CXX在此行之前被发送到配置脚本中.)

  • 我不明白.我有一个经过精心编写的程序,可以安全地从最大优化中获益.有没有办法表达这个? (2认同)
  • 如果未指定首选项,则用户期望使用-g -O2.修改CXXFLAGS是用户的特权,而不是包维护者.可以将-Werror添加到AM_CXXFLAGS,但必须保留优化级别供用户选择. (2认同)