Tencent / Tendis

Tendis is a high-performance distributed storage system fully compatible with the Redis protocol.
http://tendis.cn
Other
2.91k stars 319 forks source link

make -j16报错 #280

Open fg129647 opened 3 weeks ago

fg129647 commented 3 weeks ago

执行make -j16的报错 In file included from /opt/Tendis/src/tendisplus/utils/status.h:20, from /opt/Tendis/src/tendisplus/utils/status_test.cpp:10: /opt/Tendis/src/tendisplus/utils/portable.h:16:23: error: ‘optional’ in namespace ‘std’ does not name a template type 16 | using optional = std::optional; | ^~~~ /opt/Tendis/src/tendisplus/utils/portable.h:16:18: note: ‘std::optional’ is only available from C++17 onwards 16 | using optional = std::optional; | ^~~ In file included from /opt/Tendis/src/tendisplus/utils/status.h:20, from /opt/Tendis/src/tendisplus/utils/status_test.cpp:10: /opt/Tendis/src/tendisplus/utils/portable.h:31:29: error: ‘filesystem’ is not a namespace-name 31 | namespace filesystem = std::filesystem; | ^~~~~~ In file included from /opt/Tendis/src/tendisplus/utils/status_test.cpp:10: /opt/Tendis/src/tendisplus/utils/status.h:157:3: error: ‘optional’ does not name a type 157 | optional _data; | ^~~~ /opt/Tendis/src/tendisplus/utils/status.h: In constructor ‘tendisplus::Expected::Expected(const T&)’: /opt/Tendis/src/tendisplus/utils/status.h:135:7: error: class ‘tendisplus::Expected’ does not have any field named ‘_data’ 135 | : _data(t), _status(Status(ErrorCodes::ERR_OK, "")) {} | ^~~~~ /opt/Tendis/src/tendisplus/utils/status.h: In constructor ‘tendisplus::Expected::Expected(T&&)’: /opt/Tendis/src/tendisplus/utils/status.h:138:7: error: class ‘tendisplus::Expected’ does not have any field named ‘_data’ 138 | : _data(std::move(t)), _status(Status(ErrorCodes::ERR_OK, "")) {} | ^~~~~ /opt/Tendis/src/tendisplus/utils/status.h: In member function ‘const T& tendisplus::Expected::value() const’: /opt/Tendis/src/tendisplus/utils/status.h:141:13: error: ‘_data’ was not declared in this scope 141 | return _data; | ^~~~~ /opt/Tendis/src/tendisplus/utils/status.h: In member function ‘T& tendisplus::Expected::value()’: /opt/Tendis/src/tendisplus/utils/status.h:145:13: error: ‘_data’ was not declared in this scope 145 | return _data; | ^~~~~ make[2]: [src/tendisplus/utils/CMakeFiles/status_test.dir/status_test.cpp.o] Error 1 make[1]: [src/tendisplus/utils/CMakeFiles/status_test.dir/all] Error 2 make[1]: ** Waiting for unfinished jobs.... In file included from /opt/Tendis/src/tendisplus/utils/status.h:20, from /opt/Tendis/src/tendisplus/storage/varint.h:14, from /opt/Tendis/src/tendisplus/storage/varint_test.cpp:11: /opt/Tendis/src/tendisplus/utils/portable.h:16:23: error: ‘optional’ in namespace ‘std’ does not name a template type 16 | using optional = std::optional; | ^~~~ /opt/Tendis/src/tendisplus/utils/portable.h:16:18: note: ‘std::optional’ is only available from C++17 onwards 16 | using optional = std::optional; | ^~~ In file included from /opt/Tendis/src/tendisplus/utils/status.h:20, from /opt/Tendis/src/tendisplus/storage/varint.h:14, from /opt/Tendis/src/tendisplus/storage/varint_test.cpp:11: /opt/Tendis/src/tendisplus/utils/portable.h:31:29: error: ‘filesystem’ is not a namespace-name 31 | namespace filesystem = std::filesystem; | ^~~~~~ In file included from /opt/Tendis/src/tendisplus/storage/varint.h:14, from /opt/Tendis/src/tendisplus/storage/varint_test.cpp:11: /opt/Tendis/src/tendisplus/utils/status.h:157:3: error: ‘optional’ does not name a type 157 | optional _data; | ^~~~ /opt/Tendis/src/tendisplus/utils/status.h: In constructor ‘tendisplus::Expected::Expected(const T&)’: /opt/Tendis/src/tendisplus/utils/status.h:135:7: error: class ‘tendisplus::Expected’ does not have any field named ‘_data’ 135 | : _data(t), _status(Status(ErrorCodes::ERR_OK, "")) {} | ^~~~~ /opt/Tendis/src/tendisplus/utils/status.h: In constructor ‘tendisplus::Expected::Expected(T&&)’: /opt/Tendis/src/tendisplus/utils/status.h:138:7: error: class ‘tendisplus::Expected’ does not have any field named ‘_data’ 138 | : _data(std::move(t)), _status(Status(ErrorCodes::ERR_OK, "")) {} | ^~~~~ /opt/Tendis/src/tendisplus/utils/status.h: In member function ‘const T& tendisplus::Expected::value() const’: /opt/Tendis/src/tendisplus/utils/status.h:141:13: error: ‘_data’ was not declared in this scope 141 | return _data; | ^~~~~ /opt/Tendis/src/tendisplus/utils/status.h: In member function ‘T& tendisplus::Expected::value()’: /opt/Tendis/src/tendisplus/utils/status.h:145:13: error: ‘_data’ was not declared in this scope 145 | return *_data; | ^~~~~

fg129647 commented 3 weeks ago

/opt/Tendis/build/CMakeFiles/CMakeTmp/src.cxx:2:11: error: expected constructor, destructor, or type conversion before ‘(’ token 2 | __declspec(thread) int tls; | ^ gmake[1]: [CMakeFiles/cmTC_7d2ef.dir/src.cxx.o] Error 1 gmake[1]: Leaving directory `/opt/Tendis/build/CMakeFiles/CMakeTmp' gmake: [cmTC_7d2ef/fast] Error 2

Source file was:

__declspec(thread) int tls; int main() { }

Determining if the F_FULLFSYNC exist failed with the following output: Change Dir: /opt/Tendis/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/gmake" "cmTC_942d8/fast" /usr/bin/gmake -f CMakeFiles/cmTC_942d8.dir/build.make CMakeFiles/cmTC_942d8.dir/build gmake[1]: Entering directory /opt/Tendis/build/CMakeFiles/CMakeTmp' Building CXX object CMakeFiles/cmTC_942d8.dir/CheckSymbolExists.cxx.o /opt/rh/devtoolset-9/root/usr/bin/c++ -flto=auto -std=c++17 -g -fno-omit-frame-pointer -W -Wextra -Wall -pthread -Wsign-compare -Wshadow -Wno-unused-parameter -Wno-unused-variable -Woverloaded-virtual -Wnon-virtual-dtor -Wno-missing-field-initializers -Wno-strict-aliasing -Wno-invalid-offsetof -fno-omit-frame-pointer -momit-leaf-frame-pointer -march=native -Werror -fno-builtin-memcmp -o CMakeFiles/cmTC_942d8.dir/CheckSymbolExists.cxx.o -c /opt/Tendis/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx /opt/Tendis/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx: In function ‘int main(int, char**)’: /opt/Tendis/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:8:19: error: ‘F_FULLFSYNC’ was not declared in this scope 8 | return ((int*)(&F_FULLFSYNC))[argc]; | ^~~~~~~~~~~ gmake[1]: *** [CMakeFiles/cmTC_942d8.dir/CheckSymbolExists.cxx.o] Error 1 gmake[1]: Leaving directory/opt/Tendis/build/CMakeFiles/CMakeTmp' gmake: *** [cmTC_942d8/fast] Error 2

File /opt/Tendis/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx: / /

include

int main(int argc, char** argv) { (void)argv;

ifndef F_FULLFSYNC

return ((int*)(&F_FULLFSYNC))[argc];

else

(void)argc; return 0;

endif

}

[root@test build]# clear [root@test build]# tail -n 50 CMakeFiles/CMakeError.log Change Dir: /opt/Tendis/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/gmake" "cmTC_7d2ef/fast" /usr/bin/gmake -f CMakeFiles/cmTC_7d2ef.dir/build.make CMakeFiles/cmTC_7d2ef.dir/build gmake[1]: Entering directory /opt/Tendis/build/CMakeFiles/CMakeTmp' Building CXX object CMakeFiles/cmTC_7d2ef.dir/src.cxx.o /opt/rh/devtoolset-9/root/usr/bin/c++ -flto=auto -std=c++17 -g -fno-omit-frame-pointer -DHAVE_MSVC_TLS -o CMakeFiles/cmTC_7d2ef.dir/src.cxx.o -c /opt/Tendis/build/CMakeFiles/CMakeTmp/src.cxx /opt/Tendis/build/CMakeFiles/CMakeTmp/src.cxx:2:11: error: expected constructor, destructor, or type conversion before ‘(’ token 2 | __declspec(thread) int tls; | ^ gmake[1]: *** [CMakeFiles/cmTC_7d2ef.dir/src.cxx.o] Error 1 gmake[1]: Leaving directory/opt/Tendis/build/CMakeFiles/CMakeTmp' gmake: *** [cmTC_7d2ef/fast] Error 2

Source file was:

__declspec(thread) int tls; int main() { }

Determining if the F_FULLFSYNC exist failed with the following output: Change Dir: /opt/Tendis/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/gmake" "cmTC_942d8/fast" /usr/bin/gmake -f CMakeFiles/cmTC_942d8.dir/build.make CMakeFiles/cmTC_942d8.dir/build gmake[1]: Entering directory /opt/Tendis/build/CMakeFiles/CMakeTmp' Building CXX object CMakeFiles/cmTC_942d8.dir/CheckSymbolExists.cxx.o /opt/rh/devtoolset-9/root/usr/bin/c++ -flto=auto -std=c++17 -g -fno-omit-frame-pointer -W -Wextra -Wall -pthread -Wsign-compare -Wshadow -Wno-unused-parameter -Wno-unused-variable -Woverloaded-virtual -Wnon-virtual-dtor -Wno-missing-field-initializers -Wno-strict-aliasing -Wno-invalid-offsetof -fno-omit-frame-pointer -momit-leaf-frame-pointer -march=native -Werror -fno-builtin-memcmp -o CMakeFiles/cmTC_942d8.dir/CheckSymbolExists.cxx.o -c /opt/Tendis/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx /opt/Tendis/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx: In function ‘int main(int, char**)’: /opt/Tendis/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:8:19: error: ‘F_FULLFSYNC’ was not declared in this scope 8 | return ((int*)(&F_FULLFSYNC))[argc]; | ^~~~~~~~~~~ gmake[1]: *** [CMakeFiles/cmTC_942d8.dir/CheckSymbolExists.cxx.o] Error 1 gmake[1]: Leaving directory/opt/Tendis/build/CMakeFiles/CMakeTmp' gmake: *** [cmTC_942d8/fast] Error 2

File /opt/Tendis/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx: / /

include

int main(int argc, char** argv) { (void)argv;

ifndef F_FULLFSYNC

return ((int*)(&F_FULLFSYNC))[argc];

else

(void)argc; return 0;

endif

}

这是cmake的Error.log里面的内容