首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rocksdb犯错误

Rocksdb犯错误
EN

Stack Overflow用户
提问于 2015-06-08 10:07:43
回答 1查看 436关注 0票数 0

我想测试pyrocksdb折叠这些步骤。在构建shared_lib并设置pyrocksb (没有重大问题并严格遵循步骤)之后,我尝试从python加载rocksdb并获得以下错误:

代码语言:javascript
复制
>>>import rocksdb
Traceback (most recent call last):
File "", line 1, in 
File "/home/user/virtualenv/pyrocks/local/lib/python2.7/site-packages/rocksdb/__init__.py", line 1, in 
from ._rocksdb import *
ImportError: /usr/local/lib/librocksdb.so: undefined symbol: clock_gettime

这里已经对这个问题进行了更详细的报道和描述,但在我看来还没有得到解决。有人已经想出解决办法了吗?

编辑:

我让它起作用了。最后的提示是关于 rocksdb github的讨论。在某种程度上,-lrt标志在g++编译器中的使用似乎导致了错误,导致了一个缺失的链接。正如前面提到的,一个快速的解决方法是直接添加--不需要的标志作为g++编译器的选项。有关更多详细信息,请参阅这里

我刚运行make,停止复制屏幕打印出的选项和标志列表。在开头插入上面的可选标志命令。使其发挥作用:-)

对于我来说,g++命令如下所示:参见"-Wl,--不需要“

代码语言:javascript
复制
g++ -shared -Wl,--no-as-needed,-soname -Wl,librocksdb.so -g -Wall -Werror -Wno-sign-compare -I. -I./include -std=c++11 -DROCKSDB_PLATFORM_POSIX -DOS_LINUX -fno-builtin-memcmp -DROCKSDB_ATOMIC_PRESENT -DROCKSDB_FALLOCATE_PRESENT -DSNAPPY -DGFLAGS -DZLIB -DBZIP2 -DHAVE_JEMALLOC -O2 -fno-omit-frame-pointer -momit-leaf-frame-pointer -Woverloaded-virtual -fPIC -lpthread -lrt -lsnappy -lgflags -lz -lbz2 and so on ....
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-10 19:05:09

谢谢PlagTag。我们在Makefile中添加了"-Wl,--不需要的“:https://github.com/facebook/rocksdb/commit/d03f110904682a340137af07264eb8e148e3477d

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

https://stackoverflow.com/questions/30706348

复制
相关文章

相似问题

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