在 OSX 10.6 (Snow Leopard) 上编译 mcrypt

在 OSX 10.6 (Snow Leopard) 上编译 mcrypt

我正在尝试在 OSX 10.6 上编译 mcrypt-2.6.8

./configure --with-prefix=/opt/local/mcrypt
...
配置:错误:“您至少需要 libmhash 0.8.15 来编译该程序。http://mhash.sf.net/”

我已成功编译 mhash。它位于 /opt/local/mhash。不幸的是,链接器似乎找不到库。

我已经尝试导出 DYLD_LIBRARY_PATH、LD_LIBRARY_PATH、设置 CFLAGS="$CFLAGS -L/opt/local/mhash"、将 lib 文件复制到 /usr/local/lib,...

更新:./configure 现在可以与

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

但现在“make”失败了

../config.h:219:1:警告:这是上一个定义的位置
rfc2440.c:26:20:错误: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]: *** [全递归] 错误 1
make:*** [全部] 错误 2

有什么想法吗?

答案1

我发现我可以通过更改 rfc2440.c 源代码本身来实现这一点。由于我的 malloc.h 文件位于/usr/include/malloc/malloc.h,我将行从 更改#include < malloc.h>#include < malloc/malloc.h>并进行编译。没有编译器错误,make install之后使用 可以正常安装(技术上来说,sudo make install)。

答案2

麦金塔确实有 mcrypt 可用,我刚刚确认它可以编译。我总是更喜欢芬克自己做,因为它很简单port install mcrypt(当事情正常运转时)。

答案3

如果你的 make 出现以下错误:

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

然后:

touch malloc.h;

在运行 configure 之前,在您的构建目录中,进行 make。

答案4

好的,我最终不需要 mcrypt 而只需要 libmcrypt。用这个就行了。

相关内容