tikv-7.5.1使用cargo vendor离线编译失败问题

【 TiDB 使用环境】测试
【 TiDB 版本】
【复现路径】使用cargo vendor下载离线依赖后,通过cargo vendor离线编译
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
error: failed to run custom build command for libtitan_sys v0.0.1 (https://github.com/tikv/rust-rocksdb.git#c4b70473)

Caused by:
process didn’t exit successfully: /home/yinjiafan/tikv-7.5.1/target/debug/build/libtitan_sys-8f1c95a26047b50a/build-script-build (exit status: 101)
— stdout
CMAKE_TOOLCHAIN_FILE_x86_64-unknown-linux-gnu = None
CMAKE_TOOLCHAIN_FILE_x86_64_unknown_linux_gnu = None
HOST_CMAKE_TOOLCHAIN_FILE = None
CMAKE_TOOLCHAIN_FILE = None
CMAKE_GENERATOR_x86_64-unknown-linux-gnu = None
CMAKE_GENERATOR_x86_64_unknown_linux_gnu = None
。。。
。。。
CMake Error at cmake/rocksdb_flags.cmake:32 (find_package):
By not providing “Findlz4.cmake” in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by “lz4”, but
CMake did not find one.

Could not find a package configuration file provided by "lz4" with any of
the following names:

  lz4Config.cmake
  lz4-config.cmake

Add the installation prefix of "lz4" to CMAKE_PREFIX_PATH or set "lz4_DIR"
to a directory containing one of the above files.  If "lz4" provides a
separate development package or SDK, be sure it has been installed.

Call Stack (most recent call first):
CMakeLists.txt:31 (include)

=======》最终会报错找不到lz4文件,之前也报过找不到snappy文件,但是find可以在vendor中找到,通过全局声明也能继续编译;但是这个lz4,是完全找不到了,离线编译编不出来,不知道有没有人遇到过这个问题

手动编译、安装一个lz4试试呢。

也不行,感觉vendor是应该把这些东西都拉下来的,但是现在看是缺少一些东西;如果是在线编译是可以的,我看社区也有人用vendor编译过

你用的是 rawkv 吗?

不知道你这个rocksdb用的是那个版本的。

但是rocksdb的库里面应该是有个Findlz4.cmake文件的。

不太明白你说的rawkv是什么,这个就是编译tikv时候的问题

怎么看tikv使用的rocksdb版本,我还没关注过这块,我看直接调用的tikv自己搞的rust版本rocksdb

1 个赞

By not providing “Findlz4.cmake” in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by “lz4”, but
CMake did not find one.

我看报错提示就是缺这个文件。如果编译的时候能找到Findlz4.cmake这个文件,那么无非是调整这个文件里面的参数,就应该能让编译器找到lz4的包。

而这个Findlz4.cmake文件的内容,我觉得就照搬rocksdb里面的这个试试看。

不过,我不清楚的是这个Findlz4.cmake文件应该放在那个目录下面能让cmake找到。

报错提示就是缺这个文件