帮助在Win7-64上通过mingw32或mingw-64安装ECL(可嵌入式Common Lisp) [英] Help with installing ECL (Embeddable Common Lisp) via mingw32 or mingw-64 on Win7-64

查看:145
本文介绍了帮助在Win7-64上通过mingw32或mingw-64安装ECL(可嵌入式Common Lisp)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试编译我的Win7 64位机上的ECL 10.4.1 ,但是出现问题.

I'm trying to compile ECL 10.4.1 on my Win7 64-bit box, but am having issues.

我尝试使用

I've attempted the build with both mingw32/MSYS and mingw-w64/MSYS, using the exact packages linked to here. Both have failed.

通过mingw32:./configure通过,make失败如下:

With mingw32: ./configure passes, make fails as follows:

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失败,如下所示:

With mingw-w64: ./configure fails as follows:

[...]
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之外,出于许可原因,我会避免使用此功能.)


Does anyone have any advice for either of these? Or is there another build system I could try? (Other than Cygwin which I'm avoiding for licensing reasons.)

推荐答案

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

Firt, 10.4.1 is really old release. Update to at least 11.1.1, or, preferably git version. Then, you need to install mingw32 (preferably using mingw-get) and msys.

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

After that, you need to install mingw32-gmp-dev package (or manually compile it), boehm-gc-7.2alpha2 and libffi.

给出所有应该启动msys shell的信息,然后键入以下命令:

Given all that you should start your msys shell and type the following command:

./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位.我还没有尝试过.

This will build 32 bit version. As for m64 version, you will firs need to build all ECL dependencies as 64 bit. I havent tried that.

此外,您也许可以使用ECL附带的gmp和gc而不是系统的gmp和gc.我不这样做,因为以这种方式构建ECL会花费更多时间.

Also, you might be able to use gmp and gc included with ECL instead of system ones. I don't do that since ECL build takes much more time that way.

这篇关于帮助在Win7-64上通过mingw32或mingw-64安装ECL(可嵌入式Common Lisp)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆