2016-09-30 3 views
2

Ich versuche this guide zu folgen, und ich bin zur Zeit in Schritt 3.Fehler beim mongocxx-Treiber unter Windows bauen

So nach dem Laufen,

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/ 

Ich versuche, wie in den Windows guide for mongoc Ähnliche Befehle zu tun :

Wenn ich nur

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

ich eine erro bekommen 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) 

So, hier habe ich verschiedene Dinge ausprobiert, wie das Hinzufügen der Pfade zum libsson Verzeichnis:

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/" 

Das tatsächlich funktioniert, aber dann, wenn ich versuche, mit

msbuild.exe ALL_BUILD.vcxproj 
zu bauen

Ich erhalte eine Fehlermeldung:

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] 

Diese Datei „bson.h“ scheint in der direcroty

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

aber ich bin nicht sicher, residieren, warum es die Datei nicht finden, oder wie könnte ich es so machen tun.

Vielen Dank für alle Informationen zu diesem Thema.

+0

Danke für die ausführliche writeup - es machte es viel einfacher, die Fehler zu erkennen. Ich habe unten eine Antwort, von der ich glaube, dass sie euch entsperrt. – acm

Antwort

3

Sie setzen LIBBSON_DIR und LIBMONGOC_DIR nicht korrekt. Sie sollten in Ihrem Fall beide auf C:\mongo-c-driver eingestellt sein. Das Build-System wird automatisch include und lib diesem Basispfad hinzufügen, wie benötigt.

+0

am meisten genial. Kopfgeld kommt in 11 Stunden. –

+0

Danke! Freue mich zu helfen. – acm

+0

Links sind kaputt. –

0

Oktober 18 2016

Dieses Problem tritt auch bei Mac OS X auf und möglicherweise auch bei anderen Un * xes.

  1. Verwenden Version 3.0.2 (mindestens). (Die offizielle Anleitung erwähnt 3.0.1, aber es gibt eine bug in 3.0.2 behoben).
 
curl -OL https://github.com/mongodb/mongo-cxx-driver/archive/r3.0.2.tar.gz 
  1. ich nicht build Verzeichnis hat sich ändern, aber an der Wurzel:
 
cd mongo-cxx-driver-r3.0.2 
  1. Wenn der C mongo-Treiber (und libbson) nicht im Standardverzeichnis ist, sagen Sie es dem cmake-Befehl, und sagen wir, dass wir modernes C++ (11, 14, ...) zeigen. In meinem Fall: C mongo Treiber ist auf/opt/mongodbDriverCpp (der gleiche Ort, um C++ mongo Treiber zu setzen).
 
cmake -DCMAKE_BUILD_TYPE=Release 
-DCMAKE_INSTALL_PREFIX=/opt/mongodbDriverCpp 
-DLIBBSON_DIR=/opt/mongodbDriverCpp 
-DLIBMONGOC_DIR=/opt/mongodbDriverCpp 
-DCMAKE_CXX_STANDARD=14 
  1. Fabrikat und Installieren
make 

make install 
  1. Der Befehl, um den Test von der offiziellen Führung zu kompilieren (Änderung /opt/mongodbDriverCpp auf der rechten Seite Verzeichnis):
 
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 
  1. Run (Start des mongodb Server zuerst)
 
export LD_LIBRARY_PATH=/opt/mongodbDriverCpp/lib 

./run.test 
Verwandte Themen