【问题标题】:Detect ld flags in m4 files检测 m4 文件中的 ld 标志
【发布时间】:2015-06-29 01:55:28
【问题描述】:

我有一个.m4 文件,它向链接器附加了一些标志,其中一个设置了 rpath 标志。该脚本最初是为使用-rpath=<value> 的 ld 的 GNU 版本编写的,但是,我试图在 OSX 上运行该脚本,其中 ld 的版本使用-rpath <value>。最终结果是我在 config.log 中看到了这一点:

ld:未知选项:-rpath=path/to/stuff

有没有办法检测 ld 如何从我的 .m4 文件中传递标志,以便我可以根据可用的版本输出正确的格式?

【问题讨论】:

    标签: linux macos ld autoconf


    【解决方案1】:

    您可以尝试使用脚本中的AC_LINK_IFELSE 宏来检测链接是否成功,例如:

    AC_MSG_CHECKING([for rpath flag style])
    
    saved_cflags="$CFLAGS"
    CFLAGS="$CFLAGS -Wl,-rpath=."
    AC_LINK_IFELSE([AC_LANG_SOURCE([int main(){ return 0;}])],
                   [RPATH_FLAG=gnu],
                   [RPATH_FLAG=none])
    CFLAGS="$saved_cflags"
    
    if test "x$RPATH_FLAG" = "xnone"; then
    CFLAGS="$CFLAGS -Wl,-rpath,."
    AC_LINK_IFELSE([AC_LANG_SOURCE([int main(){ return 0;}])],
                   [RPATH_FLAG=llvm],
                   [RPATH_FLAG=none])
    CFLAGS="$saved_cflags"
    fi
    
    AC_MSG_RESULT([$RPATH_FLAG])
    

    并根据此检测设置适当的标志。

    【讨论】:

      猜你喜欢
      • 2017-04-24
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      • 1970-01-01
      • 2012-01-27
      • 1970-01-01
      相关资源
      最近更新 更多