mongodb - 在 ubuntu 18.04 容器上安装 mongocxx
问题描述
背景
我将在ref1之后在 ubuntu 18.04 容器中安装 mongocxx 。
apt install libbson-1.0-0 libbson-dev libmongoc-1.0-0 libmongoc-dev
然后下载 mongo-cxx-driver-r3.2.0 和 cmake 之类的
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DBSONCXX_POLY_USE_BOOST=1 \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu
错误:
BSON_INCLUDE_DIRS does not exist !
Call Stack (most recent call first):
/usr/lib/x86_64-linux-gnu/cmake/libbson-1.0/libbson-1.0-config.cmake:33
问题
如果我手动 vim
/usr/lib/x86_64-linux-gnu/cmake/libbson-1.0/libbson-1.0-config.cmake
/usr/lib/x86_64-linux-gnu/cmake/libmongoc-1.0/libmongoc-1.0-config.cmake
如 appendix.them_are_install_here 所示
另一个错误发生:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
BSON_LIBRARY
linked by target "bsoncxx_testing" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/bsoncxx
linked by target "bsoncxx" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/bsoncxx
linked by target "test_bson" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/bsoncxx/test
linked by target "mongocxx_mocked" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx
linked by target "mongocxx" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx
linked by target "test_logging" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx/test
linked by target "test_gridfs_specs" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx/test
linked by target "test_instance" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx/test
linked by target "test_driver" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx/test
linked by target "test_crud_specs" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx/test
MONGOC_LIBRARY
linked by target "mongocxx_mocked" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx
linked by target "mongocxx" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx
linked by target "test_logging" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx/test
linked by target "test_gridfs_specs" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx/test
linked by target "test_instance" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx/test
linked by target "test_driver" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx/test
linked by target "test_crud_specs" in directory /root/icode/gitroot/mongo-cxx-driver-r3.2.0/src/mongocxx/test
-- Configuring incomplete, errors occurred!
我哪里做错了?我该如何解决?
“apt search libmongoclient-dev”和 mongocxx 有什么区别?
我只是找到一些相关的,ref4显示了另一种安装方式。我明天试试。
如果您有任何建议,请提供帮助。:)
附录
他们在这里安装
root@42c2d968e81e:~/icode/gitroot/mongo-cxx-driver-r3.2.0/build# find /usr -regex '.*mongoc.*so'
/usr/lib/x86_64-linux-gnu/libmongoclient.so
/usr/lib/x86_64-linux-gnu/libmongoc-1.0.so
root@42c2d968e81e:~/icode/gopath/src/baidu/AIIB-MIA/data_collector# find /usr -regex '.*bson.*so'
/usr/lib/x86_64-linux-gnu/libbson-1.0.so
root@42c2d968e81e:~/icode/gopath/src/baidu/AIIB-MIA/data_collector# stat /usr/include/libbson-1.0
File: /usr/include/libbson-1.0
解决方案
尝试http://mongocxx.org/mongocxx-v3/installation/linux/中以开头的部分
用户必须使用 -DLIBMONGOC_DIR 和 -DLIBBSON_DIR 选项指定 libmongoc 安装目录,而不是 -DCMAKE_PREFIX_PATH 选项:
具体来说
-DLIBMONGOC_DIR=/usr/lib \
-DLIBBSON_DIR=/usr/lib \
由于您的 libbson/libmongoc 和 libmongoc++ 将最终出现在不同的地方,您需要告诉 libmongoc++ libbson 和 libmongoc 在哪里。
您不应该编辑系统包管理器安装的任何文件(/usr 中的任何内容)。您也不应该将手动编译的软件安装到 /usr 中(这就是 /usr/local 的用途)。
推荐阅读
- rust - Sputnik v2 在创建合约时抛出“账户不存在”错误,添加账户并不能修复它。提示?
- slack - 通过 response_url webhook 更新临时消息时出现“无效块”
- asp.net-core - Core Identity Razor Pages 或直接使用用户/角色/登录管理器
- r - R - 将数字转换为百分比和 geom_col
- python - 如何让 setuptools 编译混合 C 和 C++ 以与 Cython 一起使用?
- sql - 在计算唯一值的 SQL 语法中包含表名
- node.js - 使用 req.query 通过 ObjectId-mongoose 和节点定位与用户关联的所有帖子的最佳方法是什么
- javascript - 如何将 Nextjs 生成的静态站点部署到 Vercel?
- visual-studio-code - 键绑定中的上下文特定片段
- firebase - 嵌套快照侦听器