2010-10-03 1 views
1

Я пытаюсь скомпилировать ECL 10.4.1 на моем 64-битном поле Win7, но у меня проблемы.Помогите с установкой ECL (Embeddable Common Lisp) через mingw32 или mingw-64 на Win7-64

Я попытался построить с mingw32/MSYS и mingw-w64/MSYS, используя точные пакеты, связанные с здесь. Оба потерпели неудачу.

С mingw32: ./configure проходит, сделать не удается следующим образом:

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


+2

Совет: прочитайте сообщения об ошибках, которые вы опубликовали. Если вы это сделали, объясните, как вы пытались с ними справиться (наиболее простые: add -enable-threads для настройки и/или установки библиотеки GMP), и если они не работают, как это произошло. – Ramarren

+0

Я прочитал сообщения. 1-й: Я попробовал две разные установки MinGW32. Одна из них - это классическая установка «один-на-один» для серверов MinGW, Msys, GCC, w32 и т. Д. Две из них были автоматической установкой, которую я позже заметил на их странице SF. В обоих случаях ошибка была одинаковой. Я не знал о --enable-threads; Я попробую это. (2-й, очевидно, не так близко, так как я на 64-битном уровне, мне было просто любопытно, знал ли кто-нибудь о недостающем пакете или что-то в этом роде, или мне пришлось вручную скомпилировать/установить эту библиотеку (и любые другие, которые появятся после установки GMP).) – Vultaire

+0

--enable-threads, похоже, достали мне 99% пути. Вероятно, я могу как-то разрешить это. Я хотел бы дать вам кредит на ответ, но я не могу сделать это для комментария ... – Vultaire

ответ

1

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 занимает гораздо больше времени.

+0

Этот вопрос был из 4 месяцев назад; 10.4.1 был последним выпуском в то время, насколько я знаю;) Это, как говорится, я попробую, что вы сказали здесь. Было бы отлично, если бы это работало. – Vultaire

+1

Честно говоря, я решил это, обратившись к [этой ссылке] (http://www.mail-archive.com/[email protected]/msg00212.html). Я немного изменил процедуру, но я смог установить ее.(32-разрядная версия) Я думаю, что я блокировался от использования 7.0 gc вместо одного из 7.2 альфов. Я думаю, что если бы я следовал вашей процедуре в письме, это тоже привлекло бы меня. Спасибо за помощь и подталкивание, чтобы это сделать =) – Vultaire

+0

@ Voltaire: Эти шаги не включают установку libffi. Вам понадобится libffi, поскольку это единственный способ заставить CFFI работать в более новых версиях. – Marko