在按照levelDB官方博客教程中,编译会失败。原始操作和错误信息如下。
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .
错误信息:
CMake Error at CMakeLists.txt:299 (add_subdirectory):
The source directory
/home/xie/cpp/leveldb/third_party/googletest
does not contain a CMakeLists.txt file.
CMake Error at CMakeLists.txt:304 (add_subdirectory):
The source directory
/home/xie/cpp/leveldb/third_party/benchmark
does not contain a CMakeLists.txt file.
CMake Error at CMakeLists.txt:308 (set_property):
set_property could not find TARGET gtest. Perhaps it has not yet been
created.
CMake Error at CMakeLists.txt:310 (set_property):
set_property could not find TARGET gmock. Perhaps it has not yet been
created.
-- Looking for sqlite3_open in sqlite3
-- Looking for sqlite3_open in sqlite3 - not found
原因是googletest和benchmark子模块没有,所以我们需要单独安装。
我们进入third_party目录,然后分别执行以下两个安装命令:
git clone https://github.com/google/googletest.git
git clone https://github.com/google/benchmark.git
另外,我这里还提示没有sqlite3,也需要对于安装:
sudo apt install sqlite3
都安装完成之后,我们进入build目录,再执行上面的编译命令就ok了。
cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .