linux编译firebird,交叉编译时无法运行测试程序-交叉编译Firebird

Configure通过动态编译和运行程序来确定某些问题的答案……当构建主机与目标主机相同时,它可以(通常)执行此操作。

当您进行交叉编译时,(通常)您的构建计算机无法运行由交叉编译器生成的二进制文件。

为了克服这个问题,请在配置脚本中找到测试所在的位置,如果幸运的话,配置脚本将允许缓存测试结果...您可以使用它来欺骗配置脚本以使其认为已经存在知道问题的答案,因此它将不会尝试编译和运行二进制文件。

For example, if you were trying to cross-compile openldap 2.3.11 (an old version, I know), you may need to pass in the environment the variable ac_cv_func_memcmp_working=yes (or I think you can call configure with this setting on the command line e.g. ./configure ac_cv_func_memcmp_working=yes --prefix=...).

配置脚本中的代码如下所示(它是autoconf的较旧版本,因此在较新的配置脚本中代码将有所不同,但是概念没有改变)...

echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6

if test "${ac_cv_func_memcmp_working+set}" = set; then

echo $ECHO_N "(cached) $ECHO_C" >&6

else

if test "$cross_compiling" = yes; then

ac_cv_func_memcmp_working=no

else

...

您可以在上面的代码中看到,如果配置脚本认为您正在交叉编译,则它会对目标计算机做出一个(对于我而言是不正确的)假设。

如果您不能使用此技巧(已缓存的答案)解决该问题,则必须以其他方式提供一种解决方法……目标是使configure脚本完全运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值