JingchengLi / swapdb

https://github.com/JingchengLi/swapdb/wiki
BSD 2-Clause "Simplified" License
397 stars 71 forks source link

在centos7上编译失败 #3

Open yubingxing opened 6 years ago

yubingxing commented 6 years ago

/data/swapdb/swap-redis-4.0.0/deps/linenoise/linenoise.c: 在函数‘refreshMultiLine’中: /data/swapdb/swap-redis-4.0.0/deps/linenoise/linenoise.c:568:27: 警告:ISO C99 需要使用剩余的参数 [默认启用] lndebug("clear+up"); ^ /data/swapdb/swap-redis-4.0.0/deps/linenoise/linenoise.c:574:20: 警告:ISO C99 需要使用剩余的参数 [默认启用] lndebug("clear"); ^ /data/swapdb/swap-redis-4.0.0/deps/linenoise/linenoise.c:591:28: 警告:ISO C99 需要使用剩余的参数 [默认启用] lndebug(""); ^ /data/swapdb/swap-redis-4.0.0/deps/linenoise/linenoise.c:619:17: 警告:ISO C99 需要使用剩余的参数 [默认启用] lndebug("\n"); ^ [ 16%] Building C object build/SWAP_REDIS/CMakeFiles/redis-check-rdb.dir/src/blocked.c.o /data/swapdb/swap-redis-4.0.0/src/bitops.c: 在函数‘bitfieldCommand’中: /data/swapdb/swap-redis-4.0.0/src/bitops.c:213:54: 警告:此函数中的‘wrapped’在使用前可能未初始化 [-Wmaybe-uninitialized] bitval = (value & ((uint64_t)1<<(bits-1-j))) != 0; ^ /data/swapdb/swap-redis-4.0.0/src/bitops.c:1053:42: 附注:‘wrapped’在此声明 uint64_t oldval, newval, wrapped, retval; ^ [ 17%] Building C object build/SWAP_REDIS/CMakeFiles/redis-check-rdb.dir/src/childinfo.c.o [ 18%] Building C object build/SWAP_REDIS/CMakeFiles/redis-server.dir/src/blocked.c.o [ 18%] Building C object build/SWAP_REDIS/CMakeFiles/redis-server.dir/src/childinfo.c.o /data/swapdb/swap-redis-4.0.0/src/bitops.c: 在函数‘bitfieldCommand’中: /data/swapdb/swap-redis-4.0.0/src/bitops.c:213:54: 警告:此函数中的‘wrapped’在使用前可能未初始化 [-Wmaybe-uninitialized] bitval = (value & ((uint64_t)1<<(bits-1-j))) != 0; ^ /data/swapdb/swap-redis-4.0.0/src/bitops.c:1053:42: 附注:‘wrapped’在此声明 uint64_t oldval, newval, wrapped, retval; ^ [ 18%] Building C object build/SWAP_REDIS/CMakeFiles/redis-check-rdb.dir/src/cluster_v3.c.o

最终编译结束时报错

[100%] Linking CXX executable ../ssdb-server CMakeFiles/ssdb-server.dir/src/serv.cpp.o:在函数‘proc_debug(Context&, Link, std::vector<Bytes, std::allocator > const&, Response)’中: /data/swapdb/swap-ssdb-1.9.2/src/serv.cpp:586:对‘rocksdb::WriteBatch::WriteBatch(unsigned long, unsigned long)’未定义的引用 ../lib/libssdb.a(ssdb_impl.cpp.o):在函数‘SSDBImpl::resetRepopid(Context&)’中: /data/swapdb/swap-ssdb-1.9.2/src/ssdb/ssdb_impl.cpp:215:对‘rocksdb::WriteBatch::WriteBatch(unsigned long, unsigned long)’未定义的引用 ../lib/libssdb.a(ssdb_impl.cpp.o):在函数‘SSDBImpl::flushdb(Context&)’中: /data/swapdb/swap-ssdb-1.9.2/src/ssdb/ssdb_impl.cpp:288:对‘rocksdb::WriteBatch::WriteBatch(unsigned long, unsigned long)’未定义的引用 /data/swapdb/swap-ssdb-1.9.2/src/ssdb/ssdb_impl.cpp:319:对‘rocksdb::WriteBatch::WriteBatch(unsigned long, unsigned long)’未定义的引用 ../lib/libssdb.a(ssdb_impl.cpp.o):在函数‘SSDBImpl::delete_key_loop(std::string const&)’中: /data/swapdb/swap-ssdb-1.9.2/src/ssdb/ssdb_impl.cpp:646:对‘rocksdb::WriteBatch::WriteBatch(unsigned long, unsigned long)’未定义的引用 ../lib/libssdb.a(t_zset.cpp.o):/data/swapdb/swap-ssdb-1.9.2/src/ssdb/t_zset.cpp:64: more undefined references to `rocksdb::WriteBatch::WriteBatch(unsigned long, unsigned long)' follow collect2: 错误:ld 返回 1 make[2]: [build/ssdb-server] 错误 1 make[1]: [build/SWAP_SSDB/CMakeFiles/ssdb-server.dir/all] 错误 2 make: *** [all] 错误 2

TimothyZhang023 commented 6 years ago

应该是前面编译rocksdb依赖时候出错了。 失败的原因我觉得可能是rocksdb依赖的snappy编译出错。 而snappy出错的原因是centos7 源里面的cmake是2.8的,而最低需求是3.1. 检查一下cmake ..的输出日志,确认一下是不是这个问题

jinzaz commented 1 year ago

@TimothyZhang023 我遇到了同样的问题, 我的cmake版本是3.18.4,gcc版本4.8.5