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

发布于 2024-09-26 01:15:14 字数 1890 浏览 6 评论 0原文

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

我尝试使用 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,我出于许可原因而避免使用它。)


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.

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

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.

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.)


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

随心而道 2024-10-03 01:15:14

首先,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,而不是系统的 gmp 和 gc。我不这样做,因为 ECL 构建会花费更多时间。

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.

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

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

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.

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文