Closed xiaosayishi closed 2 years ago
环境:centos7.9 gcc:7.3.0 错误信息: [ 94%] Building CXX object src/tendisplus/storage/rocks/CMakeFiles/rocks_kvstore_test.dir/rocks_kvstore_test.cpp.o /opt/test/tendis/src/tendisplus/utils/test_util.cpp: In function ‘std::shared_ptr tendisplus::makeServerEntryOld(const std::shared_ptr&)’: /opt/test/tendis/src/tendisplus/utils/test_util.cpp:243:57: error: no matching function for call to ‘tendisplus::RocksKVStore::RocksKVStore(const char [8], const std::shared_ptr&, std::nullptr_t, bool)’ new RocksKVStore(CATALOG_NAME, cfg, nullptr, false))), ^ In file included from /opt/test/tendis/src/tendisplus/server/server_entry.h:28:0, from /opt/test/tendis/src/tendisplus/utils/test_util.h:18, from /opt/test/tendis/src/tendisplus/utils/test_util.cpp:14: /opt/test/tendis/src/tendisplus/storage/rocks/rocks_kvstore.h:211:3: note: candidate: tendisplus::RocksKVStore::RocksKVStore(const string&, const std::shared_ptr&, std::shared_ptr, std::shared_ptr, bool, tendisplus::KVStore::StoreMode, tendisplus::RocksKVStore::TxnMode, uint32_t) RocksKVStore(const std::string& id, ^~~~ /opt/test/tendis/src/tendisplus/storage/rocks/rocks_kvstore.h:211:3: note: no known conversion for argument 4 from ‘bool’ to ‘std::shared_ptr’ make[2]: [src/tendisplus/utils/CMakeFiles/test_util.dir/test_util.cpp.o] Error 1 make[1]: [src/tendisplus/utils/CMakeFiles/test_util.dir/all] Error 2 make[1]: Waiting for unfinished jobs.... [ 94%] Linking CXX executable ../../../bin/tendisplus [ 95%] Linking CXX executable ../../../bin/skiplist_test [ 95%] Linking CXX executable ../../../bin/lock_test [ 95%] Linking CXX executable ../../../bin/server_params_test [ 95%] Built target tendisplus [ 95%] Built target skiplist_test [ 95%] Built target lock_test [ 95%] Built target server_params_test [ 95%] Linking CXX executable ../../../../bin/rocks_kvstore_test [ 95%] Built target rocks_kvstore_test make: [all] Error 2
请问各位大师,这个错误应该怎么处理,谢谢
这里是 GCC 7.3 编译的时候的问题, 目前新版本已经修改, 暂时还未对外发布,待版本稍微稳定会发布到 GitHub。可以按照下面的方式修改:
好的,谢谢!
环境:centos7.9 gcc:7.3.0 tendisplus::makeServerEntryOld(const std::shared_ptr&)’:
/opt/test/tendis/src/tendisplus/utils/test_util.cpp:243:57: error: no matching function for call to ‘tendisplus::RocksKVStore::RocksKVStore(const char [8], const std::shared_ptr&, std::nullptr_t, bool)’
new RocksKVStore(CATALOG_NAME, cfg, nullptr, false))),
^
In file included from /opt/test/tendis/src/tendisplus/server/server_entry.h:28:0,
from /opt/test/tendis/src/tendisplus/utils/test_util.h:18,
from /opt/test/tendis/src/tendisplus/utils/test_util.cpp:14:
/opt/test/tendis/src/tendisplus/storage/rocks/rocks_kvstore.h:211:3: note: candidate: tendisplus::RocksKVStore::RocksKVStore(const string&, const std::shared_ptr&, std::shared_ptr, std::shared_ptr, bool, tendisplus::KVStore::StoreMode, tendisplus::RocksKVStore::TxnMode, uint32_t)
RocksKVStore(const std::string& id,
^’
make[2]: [src/tendisplus/utils/CMakeFiles/test_util.dir/test_util.cpp.o] Error 1
make[1]: [src/tendisplus/utils/CMakeFiles/test_util.dir/all] Error 2
make[1]: Waiting for unfinished jobs....
[ 94%] Linking CXX executable ../../../bin/tendisplus
[ 95%] Linking CXX executable ../../../bin/skiplist_test
[ 95%] Linking CXX executable ../../../bin/lock_test
[ 95%] Linking CXX executable ../../../bin/server_params_test
[ 95%] Built target tendisplus
[ 95%] Built target skiplist_test
[ 95%] Built target lock_test
[ 95%] Built target server_params_test
[ 95%] Linking CXX executable ../../../../bin/rocks_kvstore_test
[ 95%] Built target rocks_kvstore_test
make: [all] Error 2
错误信息: [ 94%] Building CXX object src/tendisplus/storage/rocks/CMakeFiles/rocks_kvstore_test.dir/rocks_kvstore_test.cpp.o /opt/test/tendis/src/tendisplus/utils/test_util.cpp: In function ‘std::shared_ptr
~~~ /opt/test/tendis/src/tendisplus/storage/rocks/rocks_kvstore.h:211:3: note: no known conversion for argument 4 from ‘bool’ to ‘std::shared_ptr请问各位大师,这个错误应该怎么处理,谢谢