首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开始在MacOS上使用rocksdb

开始在MacOS上使用rocksdb
EN

Stack Overflow用户
提问于 2016-06-03 13:54:04
回答 1查看 4.4K关注 0票数 4

我跟踪了指南,然后做了:

代码语言:javascript
复制
brew install rocksdb

而我却被困在这里。如何使用rocksdb

我复制了此示例文件的内容并试图编译它,在Mac上使用gcc-5 (brew)和gcc (clang),但它们都返回错误。我在MacOS10.11.5上使用Xcode 7.3.1。

错误是:

代码语言:javascript
复制
Undefined symbols for architecture x86_64:
  "_rocksdb_backup_engine_close", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_backup_engine_create_new_backup", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_backup_engine_open", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_backup_engine_restore_db_from_latest_backup", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_close", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_get", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_open", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_options_create", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_options_destroy", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_options_increase_parallelism", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_options_optimize_level_style_compaction", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_options_set_create_if_missing", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_put", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_readoptions_create", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_readoptions_destroy", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_restore_options_create", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_restore_options_destroy", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_writeoptions_create", referenced from:
      _main in ccNZ2cWh.o
  "_rocksdb_writeoptions_destroy", referenced from:
      _main in ccNZ2cWh.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

更新:

将rocksdb库添加到Xcode中的头和库搜索路径后,如下所示:

我在rocksdb网站上试过

代码语言:javascript
复制
rocksdb::DB* db;
rocksdb::Options options;

并遇到了另一个问题:

EN

回答 1

Stack Overflow用户

发布于 2016-06-04 10:51:01

您必须告诉链接器rocksdb库在哪里以及它的名称是什么,这样它才能找到符号。

假设自制rocksdb安装到/usr/local/Cellar/rocksdb/4.5.1中,您可能需要如下所示:

代码语言:javascript
复制
gcc-5 -std=c++11 program.c -o program -L /usr/local/Cellar/rocksdb/4.5.1/lib -lrocksdb

或者,也许是一些不太特定于版本的东西,因为它无论如何都是符号关联的:

代码语言:javascript
复制
gcc-5 -std=c++11 program.c -o program -L /usr/local/lib -lrocksdb

如果您想使用Xcode GUI (而不是命令行),您需要按照这个职位中的绿色、黄色、蓝色、红色的内容进行跟踪,但需要如上填写rocksdb的值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37616259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档