在OSX 10.6(Snow Leopard)上编译mcrypt

我想在OSX 10.6上编译mcrypt-2.6.8

 ./configure --with-prefix = / opt / local / mcrypt
 ...
configuration:错误:“你至less需要libmhash 0.8.15来编译这个程序。http://mhash.sf.net/”

我已经成功编译mhash。 它位于/ opt / local / mhash。 不幸的是,链接器似乎没有find这些库。

我已经尝试导出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”

但现在“制造”失败了

 ../config.h:219:1:警告:这是以前定义的位置
 rfc2440.c:26:20:error:malloc.h:没有这样的文件或目录
 rfc2440.c:在函数'dek_load'中:
 rfc2440.c:562:警告:在传递mhash_keygen_ext参数5中的指针目标在签名方面有所不同
 rfc2440.c:在函数'dek_create'中:
 rfc2440.c:613:警告:在传递mhash_keygen_ext的参数5中的指针对象的符号性不同
 rfc2440.c:在函数'symkey_enc_decode'中:
 rfc2440.c:631:警告:在传递“header_decode”参数2中的指针目标在签名方面有所不同
 rfc2440.c:631:警告:在传递“header_decode”参数3中的指针目标在签名方面有所不同
 rfc2440.c:631:警告:在传递'header_decode'参数4中的指针目标在签名方面有所不同
 make [2]:*** [rfc2440.o]错误1
 make [1]:*** [all-recursive]错误1
 make:*** [all]错误2

有什么想法吗?

我发现我能够通过更改rfc2440.c源自己来实现这个工作。 由于我的malloc.h文件位于/usr/include/malloc/malloc.h ,因此我将#include < malloc.h>改为#include < malloc/malloc.h>并编译。 没有编译器错误,并且随后使用make install (技术上, sudo make install )。

MacPorts确实有mcrypt可用,我只是确认它编译好。 我一直比较喜欢这个,或者Fink自己来做,因为它和port install mcrypt一样简单(当工作正常的时候)。

如果你的失败与这条线:

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

然后:

 touch malloc.h; 

在运行configure之前的build目录中,make。

configuration脚本经常查找头文件而不是库,而库通常位于$ PREFIX / lib目录中。 尝试类似于CFLAGS="-I/opt/local/mhash/include -L/opt/local/mhash/lib" ./configure --with-prefix=/opt/local/mcrypt && make

好吧,我终于不需要mcrypt,但只有libmcrypt。 与此一起工作。

我有与mcrypt相同的问题。 后来我使用brew (OS X的软件包pipe理器)安装了mcrypt 。 使一切变得简单和容易。