我開始對C++和已經走錯了......G ++無法找到的信息,但是我沒有包括他們
我試圖編譯性LevelDB的一個小試驗:
#include <assert.h>
#include "leveldb/db.h"
using namespace std;
int main() {
leveldb::DB* db;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
assert(status.ok());
return 1;
}
這裏g ++命令:
g++ -I include/ testLevelDB.cpp
輸出:
/tmp/ccuBnfE7.o: In function `main':
testLevelDB.cpp:(.text+0x14): undefined reference to `leveldb::Options::Options()'
testLevelDB.cpp:(.text+0x57): undefined reference to `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)'
包含文件夾是具有levelDB標題的文件夾。
這是鏈接器引發的錯誤,而不是編譯器引發的錯誤。您忘記鏈接您收錄的圖書館。 – arkascha
@arkascha - 你是對的;我已經刪除了我的評論,因爲它是無關緊要的。 – Floris
我假設'leveldb'來自http://code.google.com/p/leveldb/您是否正確下載並安裝'leveldb'?您可能需要在鏈接器命令中提供庫的路徑。對於這個問題 - 您可能需要先建立圖書館,具體取決於您下載的方式。 – Floris