2016-07-24 3 views
1

Ich habe den MongoDB C-Treiber unter Verwendung der Anweisungen hier (unter dem Abschnitt "Erstellen von einem Release-Tarball": http://api.mongodb.com/c/current/installing.html#installing-unix) installiertconnect.c: 1: 18: Schwerwiegender Fehler: bson.h: Keine solche Datei oder Verzeichnis

nikolaus @ nikolaus-CQ5715F: ~ $ gcc -o zu verbinden connect.c $ (pkg-config --cflags --libs libmongoc-1.3.5) die folgenden Fehler bekommen, wenn MongoDB der Beispielcode zu kompilieren versuchen Paket libmongoc-1.3.5 wurde nicht im pkg-config-Suchpfad gefunden Vielleicht sollten Sie das Verzeichnis mit `libmongoc-1.3.5.pc ' der Umgebungsvariablen PKG_CONFIG_PATH hinzufügen Kein Paket' libmongoc-1.3.5 ' gefunden connect.c: 1: 18: Schwerwiegender Fehler: bson.h: Keine solche Datei oder kein Verzeichnis #include ^ Kompilierung beendet. Hier

ist der Code:

#include <bson.h> 
#include <bcon.h> 
#include <mongoc.h> 

int 
main (int argc, 
     char *argv[]) 
{ 
    mongoc_client_t  *client; 
    mongoc_database_t *database; 
    mongoc_collection_t *collection; 
    bson_t    *command, 
         reply, 
         *insert; 
    bson_error_t   error; 
    char     *str; 
    bool     retval; 

    /* 
    * Required to initialize libmongoc's internals 
    */ 
    mongoc_init(); 

    /* 
    * Create a new client instance 
    */ 
     client = mongoc_client_new ("mongodb://localhost:27017"); 

    /* 
    * Get a handle on the database "db_name" and collection  "coll_name" 
    */ 
    database = mongoc_client_get_database (client, "db_name"); 
    collection = mongoc_client_get_collection (client, "db_name",   "coll_name"); 

    /* 
    * Do work. This example pings the database, prints the result as  JSON and 
    * performs an insert 
    */ 
    command = BCON_NEW ("ping", BCON_INT32 (1)); 

    retval = mongoc_client_command_simple (client, "admin", command,  NULL, &reply, &error); 

    if (!retval) { 
     fprintf (stderr, "%s\n", error.message); 
     return EXIT_FAILURE; 
    } 

    str = bson_as_json (&reply, NULL); 
    printf ("%s\n", str); 

    insert = BCON_NEW ("hello", BCON_UTF8 ("world")); 

    if (!mongoc_collection_insert (collection, MONGOC_INSERT_NONE, insert, NULL, &error)) { 
     fprintf (stderr, "%s\n", error.message); 
    } 

    bson_destroy (insert); 
    bson_destroy (&reply); 
    bson_destroy (command); 
    bson_free (str); 

    /* 
    * Release our handles and clean up libmongoc 
    */ 
    mongoc_collection_destroy (collection); 
    mongoc_database_destroy (database); 
    mongoc_client_destroy (client); 
    mongoc_cleanup(); 

    return 0; 
} 
+0

von git oder frei tar.gz? Ich habe libbson und libmongoc aus freigegebenen tar.gz in Debian vor wenigen Tagen ohne Probleme installiert – YOU

+0

@YOU: Ich baute es aus dem Release-Tarball. Entschuldigung, ich werde den Beitrag aktualisieren. –

+0

kann gesetzt werden C_INCLUDE_PATH env Variable, um diese Header-Dateien enthalten – YOU

Antwort

0

Sie haben das pkgconfig Modul zu laden, bevor

[[email protected] microservice]# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 
[[email protected] microservice]# pkg-config --modversion libbson-1.0 
1.4.2 
[[email protected] microservice]# pkg-config --modversion libmongoc-1.0 
1.4.2 
[[email protected] microservice]# gcc -o connect connect.c $(pkg-config --cflags --libs libbson-1.0 libmongoc-1.0) 
[[email protected] microservice]# ls 
connect connect.c 
+0

Ich versuche Ihren Code, aber finde den Fehler, dass: undefined Verweis auf 'Bson_Destory', undefinierte Verweis auf 'Mongoc_Cursor_Destory' ...... Ich versuche viele Methoden, um dieses Problem zu lösen, aber gescheitert, ich bin eine grüne Hände in libmongoc Kannst du einen Rat geben, danke! – Sucy

Verwandte Themen