2017-04-12 3 views
0

J'essaie d'utiliser leveldb dans notre projet. Je déclare une des options en tant que membre de ma classe en utilisantRéférence non définie à leveldb Options

leveldb::Options options; 

Au sommet j'inclure les fichiers appropriés:

#include "leveldb/db.h" 
#include "leveldb/options.h" 

Mais quand je compile je reçois ceci:

undefined reference to `leveldb::Options::Options()' 

I Je n'ai aucun problème à les inclure, et dans ce fichier options.h il y a un constructeur Options() explicitement déclaré.

Répondre

0

/include/leveldb/options.h

ne contient pas une mise en œuvre de leveldb::Options::Options(), juste la déclaration (comme vous le dites), ce qui implique d'échouer.

/util/options.cc le contient, vous devez le compiler aussi.

+0

Gotcha. Je l'ai compilé et j'ai ajouté -L lib à mon makefile, et j'ai tout le projet leveldb dans le répertoire lib, mais pour une raison quelconque cela ne fonctionne toujours pas. Y a-t-il autre chose que je dois faire pour le lier? –

+0

Vous devez compiler tout ce que vous utilisez et ce n'est pas seulement un en-tête. Désolé, je ne peux pas donner plus d'informations. Je viens de trouver le problème en le googlant;) Je compilerais tout le projet leveldb à moins que je ne m'inquiète de la vitesse de compilation. – lars

+0

Eh bien, j'ai compilé l'ensemble du projet. Je pense que j'ai juste du mal à le relier. Quoi qu'il en soit, merci pour l'aide! –