rocksdb-usr-bin-ld-memory-concurrent-arena-o-relocation-R-X86-64-TPOFF32-against-symbol-ZN7rocksdb15C

官方的编译教程:https://github.com/facebook/rocksdb/blob/main/INSTALL.md

按照上面说的,先编译静态库:

make static_lib

这个正常。但是再编译动态库时:

make shared_lib

会报错:

/usr/bin/ld: ./memory/concurrent_arena.o: relocation R_X86_64_TPOFF32 against symbol `_ZN7rocksdb15ConcurrentArena9tls_cpuidE' can not be used when making a shared object; recompile with -fPIC

我认为是因为不能同时编译静态库和动态库,因为编译动态库时需要带上这个编译选项:-fPIC。所以清理之后再单独编译动态库即可:

make clean
make shared_lib
posted @ 2024-09-28 14:10  寻找繁星  阅读(1)  评论(0编辑  收藏  举报