1

OS X 10.7 で ECL をビルドしようとしていて、問題が発生しています。ビルドしようとすると、ecl_min ステージで segfault が発生します。

次の行で構成します。

./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 には現在、OS X Lion の最新バージョンを使用する 2 つのバージョン (7.1 および 7.2-cvs) が付属しています。つまり、git/CVS ( http://ecls.sourceforge.net/download.html ) の ECL は、そのままコンパイルして実行する必要があります。

于 2011-08-31T10:09:47.897 に答える
1

このページでは、問題の 2 つの原因 (コンパイラの問題、およびガベージ コレクターの互換性の問題) について説明し、問題自体が修正されるまでの一時的な解決策を提供します。手順は次のとおりです。

  1. Boehm-Weiser ガベージ コレクター ライブラリの新しいビルドをダウンロードし、パッチを適用して (そのページからライブラリとパッチの両方をダウンロードするためのリンクを取得することもできます)、どこかにインストールします。
  2. 次の追加オプションを使用して ECL を構成します。
    --enable-boehm=システム
    CPPFLAGS=-I/location/for/library/include
    LDFLAGS=-L/場所/for/library/lib
  

/location/for/libraryガベージ コレクターのインストールに使用したプレフィックスはどこにありますか。

そして、適切にビルドする必要があります。

この問題を追跡していると思われるこの MacPorts チケットも見つけました。今後のアップデートをチェックして、修正されるかどうかを確認してください。

于 2011-08-22T08:11:05.210 に答える