开发者社区 > PolarDB开源 > PolarDB 分布式版 > 正文

PolarDB-X 在编译ploardb-x DN ,make时报这样的错,怎么解决?

PolarDB-X 在编译ploardb-x DN ,make时报这样的错:
240a94c595740f28286fab8aed384be8.png

[ 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
a2445bec40e1fe48338a64c557cda2b0.png

展开
收起
嘟嘟嘟嘟嘟嘟 2024-08-01 08:58:53 33 0
1 条回答
写回答
取消 提交回答
  • 可以试下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 开源交流群”

    2024-08-01 09:12:10
    赞同 2 展开评论 打赏

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 采用 Shared-nothing 与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,100%兼容MySQL。 2021年开源,开源历程及更多信息访问:OpenPolarDB.com/about

相关产品

  • 云原生分布式数据库 PolarDB-X
  • 相关电子书

    更多
    PolarDB-X分布式数据库解决方案 立即下载
    PolarDB-X 2.0 全局 Binlog 与备份恢复能 立即下载
    分布式数据库DRDS全新升级 立即下载