帮助在Win7-64上通过mingw32或mingw-64安装ECL(Embeddable Common Lisp)

时间:2010-10-03 05:37:22

标签: windows-7 lisp mingw common-lisp windows-7-x64

我正在尝试在我的Win7 64位盒子上编译ECL 10.4.1,但是我遇到了问题。

我使用链接到此处的确切包,尝试使用mingw32/MSYSmingw-w64 / MSYS进行构建。两者都失败了。

使用mingw32:./ configure传递,make失败如下:

gcc -DECLDIR="\"/usr/local/lib/ecl-10.4.1\"" -I. -Ic:/my_home/ecl-10.4.1/build -I/c/my_home/ecl-10.4.1/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY   -g -O2   -Dmingw32 -c -o main.o tmp.c

In file included from c:/my_home/ecl-10.4.1/src/c/main.d:20:0:
c:/my_home/ecl-10.4.1/build/ecl/ecl.h:71:4: error: #error "The Windows ports cannot be built without threads."
make[2]: *** [main.o] Error 1
make[2]: Leaving directory `/c/my_home/ecl-10.4.1/build/c'
make[1]: *** [libeclmin.a] Error 2
make[1]: Leaving directory `/c/my_home/ecl-10.4.1/build'
make: *** [all] Error 2

使用mingw-w64:./ configure失败如下:

[...]
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking gmp/gmp.h usability... no
checking gmp/gmp.h presence... no
checking for gmp/gmp.h... no
configure: error: Can not find GMP header.

有没有人对这些方面有任何建议?或者我可以尝试另一种构建系统吗? (除了Cygwin,我因许可原因而避免使用。)


1 个答案:

答案 0 :(得分:1)

Firt,10.4.1真的是旧版本。更新至少11.1.1,或者最好是git版本。 然后,您需要安装mingw32(最好使用mingw-get)和msys。

之后,您需要安装mingw32-gmp-dev软件包(或手动编译它),boehm-gc-7.2alpha2和libffi。

鉴于所有这一切,你应该启动你的msys shell并输入以下命令:

./configure CFLAGS="-Ic:/msysdir/local/include -Ic:/msysdir/local/lib/libffi-3.0.9/include" LDFLAGS="-Lc:/msysdir/local/lib" --prefix=c:/opt/ecl --enable-threads --with-system-gmp -enable-boehm=system && make 2>&1 | tee -a build.log

这将构建32位版本。对于m64版本,您将需要将所有ECL依赖项构建为64位。我没试过。

此外,您可以使用ECL中包含的gmp和gc而不是系统。我不这样做,因为ECL构建需要花费更多的时间。