2016-09-30 38 views
2
mongocxx驅動程序時

我試圖按照this guide,和我的步驟是目前3.錯誤建立在Windows

所以運行後,

curl -OL https://github.com/mongodb/mongo-cxx-driver/archive/r3.0.1.tar.gz 
tar -xzf r3.0.1.tar.gz 
cd mongo-cxx-driver-r3.0.1/ 

我嘗試做類似的命令,在Windows guide for mongoc

如果我這樣做只是

cmake -G "Visual Studio 14 2015 Win64" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=C:/mongo-cxx-driver" 

我得到一個埃羅[R

CMake Error at cmake/FindLibBSON.cmake:37 (message): 
    Don't know how to find libbson; please set LIBBSON_DIR to the prefix 
    directory with which libbson was configured. 
Call Stack (most recent call first): 
    src/bsoncxx/CMakeLists.txt:67 (find_package) 

所以在這裏我已經嘗試不同的東西,如添加的路徑到libsson目錄:

cmake -G "Visual Studio 14 2015 Win64" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=C:/mongo-cxx-driver" "-DLIBBSON_DIR=C:/mongo-c-driver/lib/pkgconfig/" "-DLIBMONGOC_DIR=C:/mongo-c-driver/lib/pkgconfig/" "-DBOOST_ROOT=C:/local/boost_1_62_0/" 

這實際工作,但後來當我嘗試建立與

msbuild.exe ALL_BUILD.vcxproj 

我收到一個錯誤:

C:\Users\Erik\Documents\mongo-cxx-driver-r3.0.1\src\bsoncxx\array\view.cpp(21): fatal error C1083: Cannot open include 
file: 'bson.h': No such file or directory [C:\Users\Erik\Documents\mongocxx-driver-r3.0.1\src\bsoncxx\bsoncxx_static.v 
cxproj] 

這個文件,「bson.h」似乎駐留在direcroty

C:\mongo-c-driver\include\libbson-1.0 

,但我不知道爲什麼它不找到文件或我怎麼可能讓它這樣做。

非常感謝您的任何意見。

+0

感謝您的詳細的書面記錄 - 它使人們更容易發現錯誤。我在下面給出了一個答案,我認爲這將會阻止你。 – acm

回答

3

您沒有正確設置LIBBSON_DIRLIBMONGOC_DIR。在你的情況下,他們應該被設置爲C:\mongo-c-driver。構建系統將根據需要自動將includelib添加到該基本路徑。您可能會發現閱讀appveyor腳本信息:

+0

最真棒。賞金將在11個小時內到達。 –

+0

謝謝!樂於幫助。 – acm

+0

鏈接被破壞。 –

0

月, 18 2016

這個問題也發生在Mac OS X上,也可能發生在其他Un * xes上。

  1. 使用版本3.0.2(至少)。 (官方指南提及3.0.1,但在3.0.2中修復了bug)。
 
curl -OL https://github.com/mongodb/mongo-cxx-driver/archive/r3.0.2.tar.gz 
  • 我沒有改變到build目錄,但到根:
  •  
    cd mongo-cxx-driver-r3.0.2 
    
  • 如果C mongo驅動程序(和libbson)不在默認目錄中,請將其告訴cmake命令,並說我們使用現代C++(11,14,...)。在我的情況下:C mongo驅動程序在/ opt/mongodbDriverCpp(放在C++ mongo驅動程序上的同一個地方)。
  •  
    cmake -DCMAKE_BUILD_TYPE=Release 
    -DCMAKE_INSTALL_PREFIX=/opt/mongodbDriverCpp 
    -DLIBBSON_DIR=/opt/mongodbDriverCpp 
    -DLIBMONGOC_DIR=/opt/mongodbDriverCpp 
    -DCMAKE_CXX_STANDARD=14 
    
  • Make和安裝
  • make 
    
    make install 
    
  • 命令彙編從官方指導測試(將/opt/mongodbDriverCpp更改爲您的正確目錄):
  •  
    c++ --std=c++11 test.cpp -o run.test 
    -I/opt/mongodbDriverCpp/include/bsoncxx/v_noabi 
    -I /opt/mongodbDriverCpp/include/mongocxx/v_noabi/ 
    -L /opt/mongodbDriverCpp/lib 
    -l mongocxx 
    -l bsoncxx 
    
  • 運行(啓動MongoDB服務器第一)
  •  
    export LD_LIBRARY_PATH=/opt/mongodbDriverCpp/lib 
    
    ./run.test