oceanbase / oblogproxy

A proxy service of incremental log of OceanBase
Other
41 stars 19 forks source link

Build failed with `make` error 2 #19

Closed whhe closed 2 years ago

whhe commented 2 years ago

I tried to build this project on clean Centos 7.9 following the doc, here are the commands I executed in terminal:

yum install -y git wget rpm rpm-build cpio gcc gcc-c++ make glibc-devel glibc-headers libstdc++-static binutils

curl -fsSLO --compressed https://cmake.org/files/v3.22/cmake-3.22.3-linux-x86_64.tar.gz \
  && tar -zxvf cmake-3.22.3-linux-x86_64.tar.gz -C /usr/local  --strip-components=1 --no-same-owner

git clone https://github.com/oceanbase/oblogproxy && mkdir oblogproxy/buildenv && cd oblogproxy/buildenv \
  && cmake .. && make -j 6

And the output is:

[ 55%] Completed 'extern_protobuf'
[ 55%] Built target extern_protobuf
[ 56%] Generating proto/logproxy.pb.h, proto/logproxy.pb.cc
[ 56%] Generating proto/legacy.pb.h, proto/legacy.pb.cc
[ 57%] Building CXX object CMakeFiles/PROTO_OBJS.dir/proto/legacy.pb.cc.o
[ 58%] Building CXX object CMakeFiles/PROTO_OBJS.dir/proto/logproxy.pb.cc.o
[ 58%] Built target PROTO_OBJS
[ 59%] Building CXX object CMakeFiles/common.dir/src/codec/legacy_decoder.cpp.o
[ 60%] Building CXX object CMakeFiles/common.dir/src/codec/legacy_encoder.cpp.o
[ 61%] Building CXX object CMakeFiles/common.dir/src/codec/message.cpp.o
[ 62%] Building CXX object CMakeFiles/common.dir/src/codec/msg_buf.cpp.o
[ 63%] Building CXX object CMakeFiles/common.dir/src/codec/protobuf_decoder.cpp.o
[ 64%] Building CXX object CMakeFiles/common.dir/src/codec/protobuf_encoder.cpp.o
[ 65%] Building CXX object CMakeFiles/common.dir/src/common/common.cpp.o
[ 66%] Building CXX object CMakeFiles/common.dir/src/common/config.cpp.o
[ 67%] Building CXX object CMakeFiles/common.dir/src/common/config_base.cpp.o
[ 68%] Building CXX object CMakeFiles/common.dir/src/common/counter.cpp.o
[ 69%] Building CXX object CMakeFiles/common.dir/src/common/file_gc.cpp.o
[ 70%] Building CXX object CMakeFiles/common.dir/src/common/fs_util.cpp.o
[ 71%] Building CXX object CMakeFiles/common.dir/src/common/jsonutil.cpp.o
[ 72%] Building CXX object CMakeFiles/common.dir/src/common/log.cpp.o
[ 73%] Building CXX object CMakeFiles/common.dir/src/common/md5.cpp.o
[ 74%] Building CXX object CMakeFiles/common.dir/src/common/ob_aes256.cpp.o
[ 75%] Building CXX object CMakeFiles/common.dir/src/common/option.cpp.o
[ 76%] Building CXX object CMakeFiles/common.dir/src/common/str.cpp.o
[ 77%] Building CXX object CMakeFiles/common.dir/src/common/thread.cpp.o
[ 78%] Building CXX object CMakeFiles/common.dir/src/common/timer.cpp.o
[ 79%] Building CXX object CMakeFiles/common.dir/src/communication/channel.cpp.o
[ 80%] Building CXX object CMakeFiles/common.dir/src/communication/communicator.cpp.o
[ 81%] Building CXX object CMakeFiles/common.dir/src/communication/http.cpp.o
[ 82%] Building CXX object CMakeFiles/common.dir/src/communication/io.cpp.o
[ 83%] Building CXX object CMakeFiles/common.dir/src/communication/listener.cpp.o
[ 84%] Building CXX object CMakeFiles/common.dir/src/obaccess/mysql_protocol.cpp.o
[ 85%] Building CXX object CMakeFiles/common.dir/src/obaccess/ob_access.cpp.o
[ 86%] Building CXX object CMakeFiles/common.dir/src/obaccess/ob_mysql_packet.cpp.o
[ 87%] Building CXX object CMakeFiles/common.dir/src/obaccess/ob_sha1.cpp.o
[ 88%] Building CXX object CMakeFiles/common.dir/src/obaccess/oblog_config.cpp.o
[ 89%] Linking CXX static library libcommon.a
[ 89%] Built target common
[ 90%] Building CXX object CMakeFiles/oblogreader_static.dir/src/oblogreader/oblog_access.cpp.o
[ 91%] Building CXX object CMakeFiles/oblogreader_static.dir/src/oblogreader/oblogreader.cpp.o
[ 92%] Building CXX object CMakeFiles/oblogreader_static.dir/src/oblogreader/reader_routine.cpp.o
[ 93%] Building CXX object CMakeFiles/oblogreader_static.dir/src/oblogreader/sender_routine.cpp.o
/root/source/oblogproxy/src/oblogreader/sender_routine.cpp: In member function 'virtual void oceanbase::logproxy::SenderRoutine::run()':
/root/source/oblogproxy/src/oblogreader/sender_routine.cpp:73:19: error: 'LogMsgLocalInit' was not declared in this scope
   LogMsgLocalInit();
                   ^
/root/source/oblogproxy/src/oblogreader/sender_routine.cpp:126:49: error: no matching function for call to 'oceanbase::logmessage::ILogRecord::toString(size_t*, bool)'
       const char* rbuf = r->toString(&size, true);
                                                 ^
In file included from /root/source/oblogproxy/src/oblogreader/sender_routine.cpp:16:0:
/root/source/oblogproxy/buildenv/third-party/install/oblogmsg/include/LogRecord.h:238:23: note: candidate: virtual const char* oceanbase::logmessage::ILogRecord::toString(size_t*, oceanbase::logmessage::LogMsgBuf*, bool)
   virtual const char* toString(size_t* size, LogMsgBuf* lmb = NULL, bool reserveMemory = false) = 0;
                       ^
/root/source/oblogproxy/buildenv/third-party/install/oblogmsg/include/LogRecord.h:238:23: note:   no known conversion for argument 2 from 'bool' to 'oceanbase::logmessage::LogMsgBuf*'
/root/source/oblogproxy/src/oblogreader/sender_routine.cpp:172:22: error: 'LogMsgLocalDestroy' was not declared in this scope
   LogMsgLocalDestroy();
                      ^
make[2]: *** [CMakeFiles/oblogreader_static.dir/src/oblogreader/sender_routine.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/oblogreader_static.dir/all] Error 2
make: *** [all] Error 2
fankux commented 2 years ago

master branch has fix this issue

whhe commented 2 years ago

Met a cmake error after #20 merged

-- The CXX compiler identification is GNU 4.8.5
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
dep_create.sh in /root/oblogproxy/deps, target dir: /root/oblogproxy/buildenv/deps
check dependencies profile for el7.x86_64... FOUND
check repository address in profile... http://mirrors.aliyun.com/oceanbase/development-kit/el/7/x86_64/
https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/
download dependencies...
download package <devdeps-openssl-static-1.0.1e-3.el7.x86_64.rpm>... SUCCESS
unpack package <devdeps-openssl-static-1.0.1e-3.el7.x86_64.rpm>... SUCCESS
download package <devdeps-libaio-0.3.112-3.el7.x86_64.rpm>... SUCCESS
unpack package <devdeps-libaio-0.3.112-3.el7.x86_64.rpm>... SUCCESS
download package <oceanbase-ce-devel-3.1.2-10000392021123010.el7.x86_64.rpm>... SUCCESS
unpack package <oceanbase-ce-devel-3.1.2-10000392021123010.el7.x86_64.rpm>... SUCCESS
download package <obdevtools-gcc-5.2.0-3.el7.x86_64.rpm>... SUCCESS
unpack package <obdevtools-gcc-5.2.0-3.el7.x86_64.rpm>... SUCCESS
-- DEP_VAR: /root/oblogproxy/buildenv/deps
-- JAVA_HOME: 
CMake Error at CMakeLists.txt:56 (GET_FILENAME_COMPONENT):
  GET_FILENAME_COMPONENT called with incorrect number of arguments

-- Configuring incomplete, errors occurred!
See also "/root/oblogproxy/buildenv/CMakeFiles/CMakeOutput.log".
whhe commented 2 years ago

Met a cmake error:

-- The CXX compiler identification is GNU 4.8.5
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
dep_create.sh in /root/oblogproxy/deps, target dir: /root/oblogproxy/buildenv/deps
check dependencies profile for el7.x86_64... FOUND
check repository address in profile... http://mirrors.aliyun.com/oceanbase/development-kit/el/7/x86_64/
https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/
download dependencies...
download package <devdeps-openssl-static-1.0.1e-3.el7.x86_64.rpm>... SUCCESS
unpack package <devdeps-openssl-static-1.0.1e-3.el7.x86_64.rpm>... SUCCESS
download package <devdeps-libaio-0.3.112-3.el7.x86_64.rpm>... SUCCESS
unpack package <devdeps-libaio-0.3.112-3.el7.x86_64.rpm>... SUCCESS
download package <oceanbase-ce-devel-3.1.2-10000392021123010.el7.x86_64.rpm>... SUCCESS
unpack package <oceanbase-ce-devel-3.1.2-10000392021123010.el7.x86_64.rpm>... SUCCESS
download package <obdevtools-gcc-5.2.0-3.el7.x86_64.rpm>... SUCCESS
unpack package <obdevtools-gcc-5.2.0-3.el7.x86_64.rpm>... SUCCESS
-- DEP_VAR: /root/oblogproxy/buildenv/deps
-- JAVA_HOME: 
CMake Error at CMakeLists.txt:56 (GET_FILENAME_COMPONENT):
  GET_FILENAME_COMPONENT called with incorrect number of arguments

-- Configuring incomplete, errors occurred!
See also "/root/oblogproxy/buildenv/CMakeFiles/CMakeOutput.log".

This is caused by missing which command and can be installed by yum install which. Issue fixed.