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

Macos 在Mac OS X 10.7(Lion)上编译ECL 11.1.1,macos,segmentation-fault,common-lisp,osx-lion,ecl,Macos,Segmentation Fault,Common Lisp,Osx Lion,Ecl,我一直在尝试在OSX10.7下构建ECL,我一直在 遇到麻烦了。当我尝试建造它时,我最终得到了一个 ecl_min阶段的SEGFULT 我使用以下行进行配置: ./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 compi

我一直在尝试在OSX10.7下构建ECL,我一直在 遇到麻烦了。当我尝试建造它时,我最终得到了一个 ecl_min阶段的SEGFULT

我使用以下行进行配置:

./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克隆):

描述问题的两个原因(编译器问题和垃圾收集器兼容性问题),并提供临时解决方案,直到问题本身得到解决。这些指示可归结为:

  • 下载Boehm Weiser垃圾收集器库的新版本,应用一个补丁(您可以从该页面获得一个链接来下载库和补丁),然后将其安装到某个地方
  • 使用以下额外选项配置ECL:
  • --启用boehm=系统 CPPFLAGS=-I/location/for/library/include LDFLAGS=-L/location/for/library/lib 其中
    /location/for/library
    是用于安装垃圾收集器的前缀

    然后它应该正确地构建


    我还发现了似乎正在跟踪此问题的;在那里查看将来的更新,看看它是否会被修复。

    此问题已在git/CVS中修复。如上所述,错误编译的原因是我们的垃圾收集器版本:我们提供了最后一个可用版本:7.1,但这不适用于OSXLion。ECL现在有两个版本(7.1和7.2-cvs),使用OSXLion中的最新版本。换句话说,git/CVS()中的ECL应该可以编译并立即运行。

    我将很快试用它。我会用我的结果更新它。unicode的启用/禁用不会影响它是否编译。我禁用了它,因为我的宠物项目不使用unicode。更新了主要问题以反映更改。
    #!/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
    
    --enable-boehm=system CPPFLAGS=-I/location/for/library/include LDFLAGS=-L/location/for/library/lib