首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在AC_TRY_RUN中使用“测试STRING1 = STRING2”?

如何在AC_TRY_RUN中使用“测试STRING1 = STRING2”?
EN

Stack Overflow用户
提问于 2014-06-02 23:34:05
回答 1查看 167关注 0票数 0

我正在尝试修补一个configure.in文件,以便能够对某个包进行交叉编译。到目前为止,我只对AC_TRY_RUN宏打了补丁,使它们能够跳过编译代码的执行,并使用包含测试结果的预定义变量,这应该是先验运行的。

在文件的开头,我插入了如下几行:

代码语言:javascript
复制
dnl -- The following block is used to allow cross-compilation:
CROSSCTEST00=yes dnl -- the result of test 0
CROSSCTEST01=yes dnl -- the result of test 1 
...
CROSSCTESTNN=yes dnl -- the result of test N 
dnl --

dnl This is where this file started previously:
AC_INIT(pl-wam.c)
AC_PREREQ([2.66])

AC_CONFIG_HEADER(config.h)
AC_SUBST(COFLAGS)
AC_SUBST(CWFLAGS)
... 

然后,我像这样使用AC_TRY_RUN的第四个参数:

代码语言:javascript
复制
AC_TRY_RUN([ // piece of C code ],
    [actions if exit(0)],
    [actions if exit(1)],
    if test "x$CROSSCTEST00" = xyes; then
        dnl same actions if exit(0)
    else
        dnl same actions if exit(1)
    fi)

但它不起作用。尽管$CROSSCTEST是yes,但test ...从来都不是真的。我也尝试了另一种方法:

代码语言:javascript
复制
AC_TRY_RUN([ // piece of C code ],
    [actions if exit(0)],
    [actions if exit(1)],
    AS_IF([test "x$CROSSCTEST00" = xyes],
        [same actions if exit(0)],
        [dnl same actions if exit(1)]))

...and它也不能工作。我是不是漏掉了什么?您认为有没有更好的方法来修补configure.in以启用交叉编译?

EN

回答 1

Stack Overflow用户

发布于 2014-06-15 22:12:12

在AC_INIT之前编写的configure.acconfigure.in中的行不会出现在配置脚本中。(查看生成的配置脚本,查看是否进行了分配。)您可能只需将您的赋值移到AC_INIT调用之后。但是对AC_INIT的调用已经非常过时了,而且在使用这样一个过时的调用时需要autoconf 2.66似乎很奇怪。( configure.in这个名字也很老套)。您可能想要考虑检查文件并查找过时的cruft,因为它可能需要彻底检查。(并明确将文件重命名为configure.ac)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23998232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档