1

我一直在尝试在 OS X 10.7 下构建 ECL,但遇到了麻烦。当我尝试构建它时,我最终在 ecl_min 阶段出现了段错误。

我使用以下行进行配置:

./configure --build=x86_64 --target=x86_64 --prefix=`pwd`/install_ecl
CC=/Developer/usr/bin/gcc-4.2

编译失败:

if [ -f CROSS-COMPILER ]; then \
    ./CROSS-COMPILER compile; \
else \
    ECLDIR=`pwd`/ ./ecl_min compile; \
fi
/bin/sh: line 1: 17433 Segmentation fault: 11  ECLDIR=`pwd`/ ./ecl_min compile

我已经尝试在外部构建 gmp 和 boehm-gc 并且不使用包含的,但不幸的是它最终得到了相同的结果。我也尝试过默认的 llvm-gcc,但运气不佳。

是否有人能够在 Lion 下编译 ECL,如果可以,您需要应用哪些配置选项/补丁。

更新:感谢下面接受的答案,我能够编译。这是我使用的脚本(注意:这是来自 ECL 的新 git 克隆):

#!/bin/sh

ECL_INSTALLDIR="`pwd`/install_ecl"
mkdir -p $ECL_INSTALLDIR

./configure\
     --prefix=$ECL_INSTALLDIR\
     --enable-boehm\
     --enable-unicode=no\
     CC=/Developer/usr/bin/gcc\
     CXX=/Developer/usr/bin/g++\
     CFLAGS="$CFLAGS"
     LDFLAGS="$LDFLAGS"

make && make install
4

2 回答 2

2

此问题已在 git/CVS 中修复。如上所述,错误编译的原因是我们的垃圾收集器的版本:我们发布了最后一个可用的版本:7.1,但这不适用于 OS X Lion。ECL 现在附带两个版本(7.1 和 7.2-cvs),使用 OS X Lion 中的最新版本。换句话说,来自 git/CVS ( http://ecls.sourceforge.net/download.html ) 的 ECL 应该可以直接编译并运行。

于 2011-08-31T10:09:47.897 回答
1

此页面描述了问题的两个原因(编译器问题和垃圾收集器兼容性问题),并提供了一个临时解决方案,直到问题本身得到修复。说明归结为:

  1. 下载新版本的 Boehm-Weiser 垃圾收集器库,应用补丁(您也可以从该页面获得下载库和补丁的链接),然后将其安装在某处
  2. 使用这些额外选项配置 ECL:
    --enable-boehm=系统
    CPPFLAGS=-I/location/for/library/include
    LDFLAGS=-L/位置/for/库/lib
  

/location/for/library您用于安装垃圾收集器的前缀在哪里。

然后它应该正确构建。

我还发现了这张 MacPorts 票,它似乎正在跟踪这个问题;检查那里的未来更新,看看它是否会被修复。

于 2011-08-22T08:11:05.210 回答