【问题标题】:Need an autoconf macro that detects if -m64 is a valid compiler option需要一个 autoconf 宏来检测 -m64 是否是有效的编译器选项
【发布时间】:2010-11-24 05:01:27
【问题描述】:

我有我想在所有 unix 系统上编译的代码,但是如果 -m64 我可用并且它有效,我希望配置脚本使用它。如何让 autoconf 检查 -m64 是否有效,如果有效,请使用它?

【问题讨论】:

    标签: gcc autoconf


    【解决方案1】:
    my_save_cflags="$CFLAGS" CFLAGS=-m64 AC_MSG_CHECKING([CC是否支持-m64]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [AC_MSG_RESULT([是])] [AM_CFLAGS=-m64], [AC_MSG_RESULT([否])] ) CFLAGS="$my_save_cflags" AC_SUBST([AM_CFLAGS])

    使用 AM_CFLAGS 将 -m64 添加到构建假定 automake (或在您自己的非自动生成文件中使用 AM_CFLAGS。)

    【讨论】:

      【解决方案2】:
      dnl @synopsis CXX_FLAGS_CHECK [compiler flags]                                        
      dnl @summary check whether compiler supports given C++ flags or not                   
      AC_DEFUN([CXX_FLAG_CHECK],                                                            
      [dnl                                                                                  
        AC_MSG_CHECKING([if $CXX supports $1])
        AC_LANG_PUSH([C++])
        ac_saved_cxxflags="$CXXFLAGS"                                                       
        CXXFLAGS="-Werror $1"                                                               
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],                                            
          [AC_MSG_RESULT([yes])],                                                           
          [AC_MSG_ERROR([no])]                                                              
        )                                                                                   
        CXXFLAGS="$ac_saved_cxxflags"                                                       
        AC_LANG_POP([C++])
      ])
      

      并使用

      CXX_FLAGS_CHECK([-m64])
      

      【讨论】:

      • 是否有 "@synopsis CXX_FLAGS_CHECK [compiler flags] " 和朋友的类别列表?它看起来是一种对事物进行分类和记录的好方法。
      • "有@synopsis 等的类别列表吗?"是的:ac-archive.sourceforge.net/doc/contribute.html
      猜你喜欢
      • 2018-09-05
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 2013-11-12
      • 1970-01-01
      • 2013-01-19
      相关资源
      最近更新 更多