Я пытаюсь скомпилировать mcrypt-2.6.8 на 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/"
Я успешно скомпилировал мхаш. Он находится в / opt / local / mhash. К сожалению, компоновщик не может найти библиотеки.
Я уже пробовал экспортировать DYLD_LIBRARY_PATH, LD_LIBRARY_PATH, установив CFLAGS = "$ CFLAGS -L / opt / local / mhash", скопировав файлы lib в / usr / local / lib, ...
ОБНОВИТЬ: ./configure теперь работает с
export CFLAGS="$CFLAGS -I/opt/local/mhash/include -L/opt/local/mhash/lib"
Но теперь "make" не работает с
../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
Есть идеи?
Я обнаружил, что смог заставить это работать, изменив сам источник rfc2440.c. Поскольку мой файл malloc.h находился в /usr/include/malloc/malloc.h
, Я изменил строку с #include < malloc.h>
к #include < malloc/malloc.h>
и скомпилирован. Ошибок компилятора не было, и он установился нормально с make install
после (технически, sudo make install
).
MacPorts есть mcrypt, и я только что подтвердил, что он компилируется нормально. Я всегда предпочитаю это или Финк сделать это сам, потому что это так же просто, как port install mcrypt
(когда все работает).
Если ваша make не работает с этой строкой:
rfc2440.c:26:20: error: malloc.h: No such file or directory
Затем:
touch malloc.h;
В каталоге сборки перед запуском configure создайте.
Часто сценарий configure ищет заголовки, а не библиотеки, и библиотеки обычно находятся в каталоге $ PREFIX / lib. Попробуйте что-нибудь вроде CFLAGS="-I/opt/local/mhash/include -L/opt/local/mhash/lib" ./configure --with-prefix=/opt/local/mcrypt && make
Хорошо, мне наконец-то не понадобился mcrypt, а только libmcrypt. С этим работал.
У меня была такая же проблема с mcrypt
. Позже я установил mcrypt
с помощью brew
(менеджер пакетов для OS X). Сделал все проще и проще.