在Mac OS X 10.7(Lion)上编译ECL 11.1.1

时间:2011-08-15 17:45:43

标签: macos segmentation-fault common-lisp osx-lion ecl

我一直在尝试在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

2 个答案:

答案 0 :(得分: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应该编译并开箱即用。

答案 1 :(得分:1)

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

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

    其中/location/for/library是您用于安装垃圾收集器的前缀。

    然后它应该正确构建。

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