在安装基于openssl-1.0.1c的thrift-0.9.0时,正常使用--with-openssl在configure时会出错,报“Error: libcrypto required.”错误,为解决这个错误,可以使用CPPFLAGS="-I$HOME/iflow/openssl/include" LDFLAGS="-ldl -L$HOME/iflow/openssl/lib"替代“--with-openssl”


经过上述操作后,编译时还会遇到::malloc未声明错误,这个时候需要修改config.h,一是在第一行加入#include <cstdlib>,二是注释掉#define malloc rpl_malloc一行

自动化脚本可以写成如下(前两行经测试可以不用):
sed -i -e 's!#define HAVE_MALLOC 0!#define HAVE_MALLOC 1!' config.h
sed -i -e 's!#define HAVE_REALLOC 0!#define HAVE_REALLOC 1!' config.h
sed -i -e 's!#define malloc rpl_malloc!/*#define malloc rpl_malloc*/!' config.h
sed -i -e 's!#define realloc rpl_realloc!/*#define realloc rpl_realloc*/!' config.h

注意
sed -i -e 's!#define HAVE_MALLOC 0!#define HAVE_MALLOC 1!' config.h
sed -i -e 's!#define HAVE_REALLOC 0!#define HAVE_REALLOC 1!' config.h
#include <cstdlib>
只需要其中一个操作即可


阅读(1138) | 评论(0) | 转发(0) |

热门推荐