2010-10-03 30 views
1

J'essaie de compiler ECL 10.4.1 sur ma boîte Win7 64 bits, mais j'ai des problèmes.Aide pour installer ECL (Embeddable Common Lisp) via mingw32 ou mingw-64 sur Win7-64

J'ai essayé la construction avec les deux mingw32/MSYS et mingw-w64/MSYS, en utilisant les paquets exacts liés ici. Les deux ont échoué.

Avec mingw32: ./configure passe, make échoue comme suit:

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 

Avec MinGW-w64: ./configure échoue comme suit:

[...] 
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. 

Quelqu'un at-il des conseils pour les deux de ceux-ci? Ou y a-t-il un autre système de construction que je pourrais essayer? (Autre que Cygwin que je suis d'éviter pour des raisons de licence.)


+2

Conseil: lisez les messages d'erreur que vous avez publiés. Si vous l'avez fait, expliquez comment vous avez essayé de les traiter (le plus basique: ajouter --enable-threads pour configurer et/ou installer la bibliothèque GMP), et si cela n'a pas fonctionné, comment cela a échoué. – Ramarren

+0

J'ai lu les messages. Première: J'avais essayé deux installations différentes de MinGW32. L'une d'entre elles était une installation classique du noyau MinGW, Msys, GCC, des en-têtes de support W32, etc. Deux d'entre elles étaient une installation automatique que j'ai remarquée plus tard sur leur page SF. Dans les deux cas, l'erreur était la même. Je ne connaissais pas --enable-threads; Je vais essayer ça. (Le second n'est évidemment pas aussi proche, puisque je suis en 64 bits, j'étais curieux si quelqu'un connaissait un paquet manquant ou quelque chose comme ça, ou si je devais compiler/installer manuellement cette bibliothèque (et tous les autres qui apparaîtraient après l'installation de GMP).) – Vultaire

+0

--enable-threads semble avoir obtenu 99% du chemin. Probablement je peux résoudre les choses d'ici en quelque sorte. J'aimerais vous donner le crédit pour la réponse, mais je n'ai aucun moyen de le faire pour un commentaire ... – Vultaire

Répondre

1

Firt, 10.4.1 est vraiment ancienne version. Mettre à jour au moins 11.1.1, ou, de préférence, version git. Ensuite, vous devez installer mingw32 (de préférence en utilisant mingw-get) et msys. Ensuite, vous devez installer le paquet mingw32-gmp-dev (ou le compiler manuellement), boehm-gc-7.2alpha2 et libffi.

Étant donné tout ce que vous devriez commencer votre shell de msys et tapez la commande suivante:

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

Cela va construire la version 32 bits. Comme pour la version m64, vous aurez besoin de construire toutes les dépendances ECL en 64 bits. Je n'ai pas essayé ça. De plus, vous pourriez utiliser gmp et gc inclus avec ECL au lieu de ceux du système. Je ne fais pas ça car la construction d'ECL prend beaucoup plus de temps de cette façon.

+0

Cette question a été faite il ya 4 mois; 10.4.1 était la dernière version à ce moment-là pour autant que je sache;) Cela étant dit, je vais essayer ce que vous avez dit ici. Ce serait excellent pour que ça marche. – Vultaire

+1

Honnêtement, j'ai résolu ce problème en consultant [ce lien] (http://www.mail-archive.com/[email protected]sourceforge.net/msg00212.html). J'ai un peu modifié la procédure, mais j'ai réussi à l'installer.(Version 32 bits) Je pense que j'étais bloqué basé sur l'utilisation de la 7.0 gc au lieu de l'un des 7.2 alphas. Je pense que si j'avais suivi votre procédure à la lettre, cela m'aurait également amené. Merci pour l'aide et le coup de pouce pour y parvenir =) – Vultaire

+0

@Voltaire: Ces étapes n'incluent pas l'installation de libffi. Vous aurez besoin de libffi puisque c'est le seul moyen de faire fonctionner CFFI dans les nouvelles versions. – Marko