Помогите с установкой ECL (Embeddable Common Lisp) через mingw32 или mingw-64 на Win7-64 - PullRequest
1 голос
/ 03 октября 2010

Я пытаюсь скомпилировать ECL 10.4.1 на моем 64-битном компьютере с Win7, но у меня возникают проблемы.

Я попытался собрать с обоими 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, которого я избегаю по причинам лицензирования.)


1 Ответ

1 голос
/ 03 февраля 2011

Firt, 10.4.1 действительно старая версия.Обновите как минимум до 11.1.1 или, предпочтительно, git-версии.Затем вам нужно установить mingw32 (желательно с помощью mingw-get) и msys.

После этого вам необходимо установить пакет mingw32-gmp-dev (или скомпилировать его вручную), boehm-gc-7.2alpha2 иlibffi.

Учитывая все, что вам нужно запустить оболочку msys и введите следующую команду:

./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-битные.Я не пробовал этого.

Кроме того, вы можете использовать gmp и gc, включенные в ECL, вместо системных.Я не делаю этого, так как сборка ECL занимает намного больше времени.

...