could not determine kind of name for C.rocksdb_options_set_allow_ingest_behind
vitalyisaev2 opened this issue · comments
Hello,
Unfortunately I cannot build with gorocksdb
after the recent update #124. I take the latest release of rocksdb itself (currently it's 5.9.2
) than I'm trying to go get
gorocksdb's master.
Steps to reproduce:
- Save this installation script
rocksdb.sh
:
#!/bin/bash
set -e
set -x
ROCKSDB_DIR="/tmp/rocksdb"
ROCKSDB_VERSION="v5.9.2"
GOROCKSDB_DIR="${GOPATH}/src/github.com/tecbot/gorocksdb"
# RocksDB: on Ubuntu 16.04
case ${PLATFORM} in
"UBUNTU")
sudo apt-get install \
libsnappy-dev \
zlib1g-dev \
libbz2-dev \
libgflags-dev \
liblz4-dev \
libzstd-dev
;;
"FEDORA")
sudo dnf install \
gflags \
snappy \
snappy-devel \
zlib \
zlib-devel \
bzip2 \
bzip2-devel \
lz4-devel \
libasan \
libzstd \
libzstd-devel
;;
"CENTOS")
sudo yum -y install \
gflags \
snappy \
snappy-devel \
zlib \
zlib-devel \
bzip2 \
bzip2-devel \
lz4-devel \
libasan \
libzstd \
libzstd-devel
;;
*)
echo "Platform is not supported"
exit 1
esac
# Download sources
if [ -d ${ROCKSDB_DIR} ]; then
pushd ${ROCKSDB_DIR}
git pull origin master
else
git clone --depth=1 -b ${ROCKSDB_VERSION} https://github.com/facebook/rocksdb.git ${ROCKSDB_DIR}
pushd ${ROCKSDB_DIR}
fi
# Build project
make clean
make shared_lib -j4
sudo cp --preserve=links ./librocksdb.* /usr/local/lib/
sudo cp -r ./include/rocksdb/ /usr/local/include/
rm -rf ${ROCKSDB_DIR}
popd
# Golang RocksDB bindings
if [ -d ${GOROCKSDB_DIR} ]; then
pushd ${GOROCKSDB_DIR}
git pull origin master
else
git clone --depth=1 https://github.com/tecbot/gorocksdb ${GOROCKSDB_DIR}
fi
- Compile and install
rocksdb
:
PLATFORM=FEDORA ./rocksdb.sh
- Try to compile
gorocksdb
:
➜ CGO_CFLAGS="-I/usr/local/include/rocksdb" \
> CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy -llz4 -lzstd" \
> go get github.com/tecbot/gorocksdb
# github.com/tecbot/gorocksdb
../../../github.com/tecbot/gorocksdb/options.go:1045:2: could not determine kind of name for C.rocksdb_options_set_allow_ingest_behind
Please clarify which version of upstream rocksdb
does gorocksdb's master
correspond to.
Hi @vitalyisaev2,
thanks for reporting this issue. The gorocksdb master always refers to master of rocksdb itself. It doesn't use versioning (yet). So setting ROCKSDB_VERSION
to master should fix your problem for now.
@tecbot thanks for clarification! I would suggest that this rule should be reflected in Readme
, because now it's only mentioned that RocksDB
version must be equal or greater than 5.5+
:)