PolarDB-X 在编译ploardb-x DN ,make时报这样的错:
[ 67%] Building CXX object storage/innobase/CMakeFiles/innobase.dir/buf/buf0buf.cc.o
/home/mysql/polar/polardbx-engine-2.3.0/storage/innobase/buf/buf0buf.cc: In function ‘void buf_pool_create(buf_pool_t, ulint, ulint, std::mutex, dberr_t&)’:
/home/mysql/polar/polardbx-engine-2.3.0/storage/innobase/buf/buf0buf.cc:1224:44: error: ‘SYS_gettid’ was not declared in this scope
setpriority(PRIO_PROCESS, (pid_t)syscall(SYS_gettid), -20);
^~~~
/home/mysql/polar/polardbx-engine-2.3.0/storage/innobase/buf/buf0buf.cc:1224:44: note: suggested alternative: ‘my_getwd’
setpriority(PRIO_PROCESS, (pid_t)syscall(SYS_gettid), -20);
^~~~
my_getwd
make[2]: [storage/innobase/CMakeFiles/innobase.dir/buf/buf0buf.cc.o] 错误 1
make[1]: [storage/innobase/CMakeFiles/innobase.dir/all] 错误 2
make: * [all] 错误 2
版本是这个:polardbx-engine-2.3.0
按照文档中的步骤:
cmake . \
-DFORCE_INSOURCE_BUILD=ON \
-DCMAKE_BUILD_TYPE="Debug" \
-DSYSCONFDIR=~/polar/data \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=~/polar/data \
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL=openssl \
-DWITH_BOOST="./extra/boost/boost_1_70_0.tar.gz"
cmake成功,make时报错,gcc/g++是 7.2.0
可以试下storage/innobase/buf/buf0buf.cc的第一行添加#include "sys/syscall.h"
或是使用11.2.1的gcc
另外,我们提供了build.sh文件,可以直接用build.sh -t debug -d /path/to/dest来编译
此回答整理自钉群“阿里云 PolarDB-X 开源交流群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 采用 Shared-nothing 与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,100%兼容MySQL。 2021年开源,开源历程及更多信息访问:OpenPolarDB.com/about