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

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

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

我尝试同时使用 mingw32/MSYS 进行构建和 mingw-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,我出于许可原因避免使用它。)


最佳答案

首先,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 构建会花费更多时间。

关于windows-7 - 帮助在 Win7-64 上通过 mingw32 或 mingw-64 安装 ECL (Embeddable Common Lisp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848724/

相关文章:

c++ - 是否无法在 Windows 95 和 Windows NT 4.0 中运行已编译的 C++ 应用程序?

c# - W7 : Clean up before go to stand by

php - http ://localhost/not working on Windows 7. 有什么问题?

奇怪的Java应用程序绘图

macos - jedit 中的方案

compiler-errors - 为什么在编译时MinGW无法识别我的目标文件?

windows-7 - 为什么 NTOSKRNL.exe IMAGE_MACHINETYPE header 字段仅在某些版本的 Windows 7 x64 上设置为 x86?

lisp - Web 应用程序中符号的 Common Lisp 相等性

lisp - Lisp 中的实例变量?

ffmpeg - 为 Windows 64 位应用程序构建静态 FFmpeg 库