【问题标题】:Error on compiling MongoDB C++11 driver编译 MongoDB C++11 驱动程序时出错
【发布时间】:2017-11-07 09:04:07
【问题描述】:

我正在尝试使用以下 CMake 命令编译 MongoDB C++11 驱动程序。

cmake -G "Visual Studio 15 2017 Win64" \
"-DCMAKE_INSTALL_PREFIX=../installation/cxx-driver" \
"-DLIBBSON_DIR=../installation/libbson" \
"-DLIBMONGOC_DIR=../installation/c-driver" \
"-DCMAKE_PREFIX_PATH=../installation" \
"-DBOOST_ROOT=E:/Softwares/Libraries/Boost/boost_1_64_0" \
../mongo-cxx-driver-r3.1.1

出现以下错误。

fatal error C1083: Cannot open include file: 'bson.h': No such file or directory

“bson.h”文件存在以下路径

../installation/libbson/include/libbson-1.0

我的期望是 -DLIBBSON_DIR-DCMAKE_PREFIX_PATH 指令将有助于显示包含目录的位置。我做错了什么?

【问题讨论】:

  • 为每个变量指定绝对路径是否有效?
  • 你的问题解决了吗?我有你的问题。
  • @Sucy,一点也不。到目前为止,我所有的尝试都是徒劳的。有什么想法吗?
  • 看我的回答,我已经解决了这个问题。祝你好运!

标签: c++ mongodb c++11 mongo-cxx-driver


【解决方案1】:

是的,我花了大约两天时间来解决这个问题。谢天谢地!我已经解决了。你在哪里配置你的mongo-c-driver?不管你在哪里配置,比如/usr、/usr/local,或者/usr/local/xxx(任意名字),你都会发现mongoc.h等头文件都在libmongoc-1.0文件夹下,你应该将所有头文件(xxxx.h)从 libmongoc-1.0 文件夹中复制到 include 文件夹下,这样就可以了。祝你好运!这三个配置路径我都测试了。祝你好运!

【讨论】:

    【解决方案2】:

    删除不必要的引号:

    cmake -G "Visual Studio 15 2017 Win64" \
    -DCMAKE_INSTALL_PREFIX=../installation/cxx-driver \
    -DLIBBSON_DIR=../installation/libbson \
    -DLIBMONGOC_DIR=../installation/c-driver \
    -DCMAKE_PREFIX_PATH=../installation \
    -DBOOST_ROOT=E:/Softwares/Libraries/Boost/boost_1_64_0 \
    ../mongo-cxx-driver-r3.1.1
    

    【讨论】:

    • 我确实删除了引号,但仍然收到相同的错误消息。
    猜你喜欢
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 2020-04-22
    相关资源
    最近更新 更多