1 votes

Compilation de mcrypt sur OSX 10.6 (Snow Leopard)

J'essaie de compiler mcrypt-2.6.8 sous OSX 10.6.

./configure --with-prefix=/opt/local/mcrypt
...
configure: error: "You need at least libmhash 0.8.15 to compile this program. http://mhash.sf.net/"

J'ai réussi à compiler mhash. Il est situé sur /opt/local/mhash. Malheureusement, l'éditeur de liens ne semble pas trouver les bibliothèques.

J'ai déjà essayé d'exporter DYLD_LIBRARY_PATH, LD_LIBRARY_PATH, de définir CFLAGS="$CFLAGS -L/opt/local/mhash", de copier les fichiers lib dans /usr/local/lib, ...

UPDATE : ./configure fonctionne maintenant avec

export CFLAGS="$CFLAGS -I/opt/local/mhash/include -L/opt/local/mhash/lib"

Mais maintenant "make" échoue avec

../config.h:219:1: warning: this is the location of the previous definition
rfc2440.c:26:20: error: malloc.h: No such file or directory
rfc2440.c: In function 'dek\_load':
rfc2440.c:562: warning: pointer targets in passing argument 5 of 'mhash\_keygen\_ext' differ in signedness
rfc2440.c: In function 'dek\_create':
rfc2440.c:613: warning: pointer targets in passing argument 5 of 'mhash\_keygen\_ext' differ in signedness
rfc2440.c: In function 'symkey\_enc\_decode':
rfc2440.c:631: warning: pointer targets in passing argument 2 of 'header\_decode' differ in signedness
rfc2440.c:631: warning: pointer targets in passing argument 3 of 'header\_decode' differ in signedness
rfc2440.c:631: warning: pointer targets in passing argument 4 of 'header\_decode' differ in signedness
make\[2\]: \*\*\* \[rfc2440.o\] Error 1
make\[1\]: \*\*\* \[all-recursive\] Error 1
make: \*\*\* \[all\] Error 2

Une idée ?

4voto

OnlineCop Points 41

J'ai découvert que j'étais capable de faire fonctionner ce système en changeant la source rfc2440.c elle-même. Puisque mon fichier malloc.h se trouvait dans le répertoire /usr/include/malloc/malloc.h j'ai changé la ligne de #include < malloc.h> a #include < malloc/malloc.h> et compilé. Il n'y a pas eu d'erreur de compilation et l'installation s'est bien déroulée. make install par la suite (techniquement, sudo make install ).

2voto

Brad Ackerman Points 2111

MacPorts a mcrypt disponible, et je viens de confirmer qu'il compile bien. Je préfère toujours cela ou Fink de le faire moi-même car c'est aussi simple que port install mcrypt (lorsque les choses fonctionnent).

1voto

Si votre make échoue avec cette ligne :

rfc2440.c:26:20: error: malloc.h: No such file or directory

Ensuite :

touch malloc.h;

Dans votre répertoire de construction avant d'exécuter configure, make.

0voto

Zanchey Points 3021

Souvent, le configure script recherche les en-têtes plutôt que les bibliothèques, et les bibliothèques sont généralement situées dans le répertoire $PREFIX/lib. Essayez quelque chose comme CFLAGS="-I/opt/local/mhash/include -L/opt/local/mhash/lib" ./configure --with-prefix=/opt/local/mcrypt && make

0voto

Ok, finalement je n'avais pas besoin de mcrypt mais seulement de libmcrypt. Ça a marché avec ça.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X