安装CryptDB的时候踩过的坑

文章目录

  • 0.概述
  • 1. bison 版本过高导致的问题
    • 1.1 问题描述
    • 1.2 解决方法:
  • 2. No rule to make target `obj/crypto/ECJoin.o'的错误
    • 2.1 问题描述
    • 2.2 解决方法

0.概述

在 Ubuntu 12.04.5 下安装CryptDB时遇到了一系列麻烦,在这里标注一下避免重复踩坑,也尽量避免后来人踩坑。

1. bison 版本过高导致的问题

1.1 问题描述

/home/yourname/cryptdb/mysql-src/sql/sql_yacc.yy:30:23: error: ‘yythd’ was not declared in this scope
#define YYTHD ((THD *)yythd)
^
/home/yourname/cryptdb/mysql-src/sql/sql_yacc.yy:37:14: note: in expansion of macro ‘YYTHD’
#define Lex (YYTHD->lex)
^
/home/yourname/cryptdb/mysql-src/sql/sql_yacc.yy:14618:23: note: in expansion of macro ‘Lex’
LEX *lex= Lex;
^
make[2]: *** [sql/CMakeFiles/sql.dir/sql_yacc.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
make: *** [all] Error 2
./scripts/install.rb:176:in `pretty_execute': `make` failed (RuntimeError)
	from ./scripts/install.rb:160:in `>'
	from ./scripts/install.rb:141:in `fn'
	from ./scripts/install.rb:272:in `
'

1.2 解决方法:

参考 这位大牛的笔记
(概述:删除install.rb中的bison,然后手动编译安装 bison2)

2. No rule to make target `obj/crypto/ECJoin.o’的错误

2.1 问题描述

make: *** No rule to make target `obj/crypto/ECJoin.o', needed by `obj/libedbcrypto.a'.  Stop.
./scripts/install.rb:176:in `pretty_execute': `make` failed (RuntimeError)
from ./scripts/install.rb:160:in `>'
from ./scripts/install.rb:141:in `fn'
from ./scripts/install.rb:272

2.2 解决方法

参考国外论坛的评论区,win下拉取或者转存代码不明原因会丢文件。需要在Linux下完成全部下载流程,并且代码来源最好是从官方推荐的来源下载,虽然可能有点慢。
之前CSDN论坛上有个帖子的回复里说删掉ECJoin这一项,这会导致后续的一些其他文件无法生成,阻碍继续构建。

你可能感兴趣的:(生活中遇到的问题和解决)