我开始使用 c++ 并且已经出错了......
我正在尝试编译 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
Output:
/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**)'
include 文件夹是带有 levelDB 标头的文件夹。
您需要告诉链接器链接到leveldb
图书馆如
g++ -I include/ testLevelDB.cpp -lleveldb
但如果图书馆不在,这将不起作用/usr/lib
or /usr/local/lib
对于这种情况,假设 libleveldb.so 存在于某个名为的路径中$LEVELDB_PATH
你需要做
g++ -I include -L $LEVELDB_PATH testLevelDB.cpp -lleveldb
-L
很像-I
但它告诉链接器在哪里寻找库。
另外,由于您似乎是海湾合作委员会世界的新手,请看看this http://pages.cs.wisc.edu/~beechung/ref/gcc-intro.html海湾合作委员会介绍文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)