编译mcrypt出错,mhash怎么都对不上(已解决)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了编译mcrypt出错,mhash怎么都对不上(已解决),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2688字,纯文字阅读大概需要4分钟。
内容图文
![编译mcrypt出错,mhash怎么都对不上(已解决)](/upload/InfoBanner/zyjiaocheng/235/262337fc9c22411ea1bdfa7b82f64e7b.jpg)
# libmcrypt tar zxf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8 ./configure --prefix=/home/felix021/lamp/libmcrypt/ make make install # mhash tar jxf mhash-0.9.9.9.tar.bz2 cd mhash-0.9.9.9 ./configure --prefix=/home/felix021/lamp/mhash/ make make install # mcrypt LD_LIBRARY_PATH=/home/felix021/lamp/libmcrypt/lib:/home/felix021/lamp/mhash/lib ./configure --prefix=/home/felix021/lamp/mcrypt/ --with-libmcrypt-prefix=/home/felix021/lamp/libmcrypt
configure不通过,提示:
checking for mhash_keygen in -lmhash... no
configure: error: "You need at least libmhash 0.8.15 to compile this program. http://mhash.sf.net/"
于是专门去找了mhash0.8.18和mhash0.8.15,依然是这个错误。
查了一下mhash_keygen这个函数,在0.8.15/8中是
int mhash_keygen(xxx,xxx,xxx)
在 0.9.9.9 中是
#if defined(PROTOTYPES) mutils_error mhash_keygen(keygenid algorithm, ....) #else mutils_error mhash_keygen(); #endif
(mutils_error是typedef的uint32)
而mcrypt的configure里头12114行用来测试的是
char mhash_keygen ();
即使把char改成 mutils_error 也还是不行。
求解。
回复内容:
想自己编译安装php的mcrypt扩展
# libmcrypt tar zxf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8 ./configure --prefix=/home/felix021/lamp/libmcrypt/ make make install # mhash tar jxf mhash-0.9.9.9.tar.bz2 cd mhash-0.9.9.9 ./configure --prefix=/home/felix021/lamp/mhash/ make make install # mcrypt LD_LIBRARY_PATH=/home/felix021/lamp/libmcrypt/lib:/home/felix021/lamp/mhash/lib ./configure --prefix=/home/felix021/lamp/mcrypt/ --with-libmcrypt-prefix=/home/felix021/lamp/libmcrypt
configure不通过,提示:
checking for mhash_keygen in -lmhash... no
configure: error: "You need at least libmhash 0.8.15 to compile this program. http://mhash.sf.net/"
于是专门去找了mhash0.8.18和mhash0.8.15,依然是这个错误。
查了一下mhash_keygen这个函数,在0.8.15/8中是
int mhash_keygen(xxx,xxx,xxx)
在 0.9.9.9 中是
#if defined(PROTOTYPES) mutils_error mhash_keygen(keygenid algorithm, ....) #else mutils_error mhash_keygen(); #endif
(mutils_error是typedef的uint32)
而mcrypt的configure里头12114行用来测试的是
char mhash_keygen ();
即使把char改成 mutils_error 也还是不行。
求解。
问题解决了,StackOverflow上面的大牛指出,在编译mcrypt之前需要在LDFLAGS中给出-L和-I
export LD_LIBRARY_PATH=/home/felix021/lamp/libmcrypt/lib:/home/felix021/lamp/mhash/lib export LDFLAGS="-L/home/felix021/lamp/mhash/lib/ -I/home/felix021/lamp/mhash/include/" export CFLAGS="-I/home/felix021/lamp/mhash/include/" ./configure --prefix=/home/felix021/lamp/mcrypt/ --with-libmcrypt-prefix=/home/felix021/lamp/libmcrypt
参见 http://stackoverflow.com/questions/63...
你新安装了动态链接库,在mcrypt configure之前执行一下ldconfig
试试
直接用yum吧,直接编译源码的话,会有很多库的依赖,在configure的时候并没有处理好
内容总结
以上是互联网集市为您收集整理的编译mcrypt出错,mhash怎么都对不上(已解决)全部内容,希望文章能够帮你解决编译mcrypt出错,mhash怎么都对不上(已解决)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。