错误“类型不完整的MD5_CONTEXT";使用MariaDB 10.2和Openssl 1.1.0e [英] Error "incomplete type MD5_CONTEXT" with MariaDB 10.2 and Openssl 1.1.0e

查看:157
本文介绍了错误“类型不完整的MD5_CONTEXT";使用MariaDB 10.2和Openssl 1.1.0e的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在CentOS 7中,我无法在启用了RocksDB的情况下构建MariaDB 10.2.

I can't build MariaDB 10.2 with RocksDB enabled, in CentOS 7.

它具有以下编译错误:

/root/mariadb-10.2/mysys_ssl/my_md5.cc: In function ‘void md5_result(MD5_CONTEXT*, uchar*)’: /root/mariadb-10.2/mysys_ssl/my_md5.cc:86:29: error: ‘EVP_MD_CTX_cleanup’ was not declared in this scope    EVP_MD_CTX_cleanup(context);
                             ^ /root/mariadb-10.2/mysys_ssl/my_md5.cc: In function ‘void my_md5(uchar*, const char*, size_t)’: /root/mariadb-10.2/mysys_ssl/my_md5.cc:102:15: error: aggregate ‘MD5_CONTEXT md5_context’ has incomplete type and cannot be defined    MD5_CONTEXT md5_context;
               ^ /root/mariadb-10.2/mysys_ssl/my_md5.cc: In function ‘void my_md5_multi(uchar*, ...)’: /root/mariadb-10.2/mysys_ssl/my_md5.cc:127:15: error: aggregate ‘MD5_CONTEXT md5_context’ has incomplete type and cannot be defined    MD5_CONTEXT md5_context;
               ^ /root/mariadb-10.2/mysys_ssl/my_md5.cc: In function ‘size_t my_md5_context_size()’: /root/mariadb-10.2/mysys_ssl/my_md5.cc:140:28: error: invalid application of ‘sizeof’ to incomplete type ‘MD5_CONTEXT {aka evp_md_ctx_st}’    return sizeof(MD5_CONTEXT);
                            ^ make[2]: *** [mysys_ssl/CMakeFiles/mysys_ssl.dir/my_md5.cc.o] Error 1 make[1]: *** [mysys_ssl/CMakeFiles/mysys_ssl.dir/all] Error 2

这是我用来构建它的命令:

Here is the commands I used to build it:

yum install g ++ cmake libbz2-dev libaio-dev野牛zlib1g-dev libsnappy-dev libgflags-dev libreadline6-dev libncurses5-dev libssl-dev liblz4-dev gdb git

yum install g++ cmake libbz2-dev libaio-dev bison zlib1g-dev libsnappy-dev libgflags-dev libreadline6-dev libncurses5-dev libssl-dev liblz4-dev gdb git

git clone https://github.com/MariaDB/server.git mariadb-10.2
git checkout bb-10.2-mariarocks
git submodule init  git submodule update

cmake -DCURSES_LIBRARY=/usr/lib64/libncurses -DCURSES_INCLUDE_PATH=/usr/include . 
make -j10

我想这是OpenSSL版本的问题,也许MariaDB仅支持旧的OpenSSL版本.

I guess it's the OpenSSL version problem, maybe MariaDB supports older OpenSSL version only.

那么,有人知道如何解决它吗?

So, anyone knows how to fix it?

我的版本:

  • OpenSSL 1.1.0e 2017年2月16日
  • g ++(GCC)4.8.5 20150623

谢谢

推荐答案

对OpenSSL 1.1的支持已在MariaDB 10.2.6中添加,截至今天(2017年5月17日) 尚未发布,但预计很快就会发布.

Support for OpenSSL 1.1 was added in MariaDB 10.2.6, which as of today (May 17, 2017) has not been released yet, but is expected to be very soon.

由于您正在从github获取源代码,因此您现在可以尝试使用它,但是您不应该使用bb-10.2-mariarocks树-尽管它可能在RocksDB中(或没有)进行了一些最新的实验性更改,但很可能以任何其他方式过时.请改为使用10.2分支,它也具有RocksDB.

Since you are taking source code from github, you can try it now already, but you shouldn't be using bb-10.2-mariarocks tree -- while it might have some newest experimental changes in RocksDB (or not), it is likely to be outdated in any other way. Please use 10.2 branch instead, it has RocksDB as well.

这篇关于错误“类型不完整的MD5_CONTEXT";使用MariaDB 10.2和Openssl 1.1.0e的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆