我正在尝试在 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
答案3
如果你的 make 出现以下错误:
rfc2440.c:26:20: error: malloc.h: No such file or directory
然后:
touch malloc.h;
在运行 configure 之前,在您的构建目录中,进行 make。
答案4
好的,我最终不需要 mcrypt 而只需要 libmcrypt。用这个就行了。