phxsql
phxsql copied to clipboard
编译错误
在编译phxsql 0.8.5的percona时,出现如下错误,目测是因为binlogsvr模块还没编译打包成库,所以出现 “undefined reference to ”的错误,但此时binlogsvr还没开始编译;所以感觉是编译时模块间相互依赖的问题? 如何解决这个问题,顺利进行编译? 多谢!
] Linking CXX executable pfs_connect_attr-t
../../../plugin/phxsync_phxrpc/libphxsync_master_phxrpc.a(phxsync_utils.cc.o): In function repl_phx_report_binlog_to_binlogsvr(Binlog_storage_param*, char const*, char const*, unsigned long long, char const*, unsigned long long)': phxsync_utils.cc:(.text+0x4ad): undefined reference to
phxbinlog::GtidHandler::ParseEventList(std::basic_string<char, std::char_traits
请问使用build.sh来编译的吗? phxbinlogsvr要在percona之前编译。正确的编译顺序是先编出percona里的mysql client,然后是phxbinlogsvr,最后才是percona。如果你用build.sh来编译,应该能正确处理这依赖。
[ 75%] Linking CXX executable pfs_connect_attr-t
../../../plugin/phxsync_phxrpc/libphxsync_master_phxrpc.a(phxsync_utils.cc.o): In function repl_phx_report_binlog_to_binlogsvr(Binlog_storage_param*, char const*, char const*, unsigned long long, char const*, unsigned long long)': phxsync_utils.cc:(.text+0x4ad): undefined reference to
phxbinlog::GtidHandler::ParseEventList(std::basic_string<char, std::char_traitsphxbinlogsvr::PhxBinlogClient::SendBinLog(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' ../../../plugin/phxsync_phxrpc/libphxsync_master_phxrpc.a(init_with_phxbinlogsvr.cc.o): In function
BinlogGtidState::get_last_gtid_in_binlogsvr(char const, std::basic_string<char, std::char_traitsphxbinlogsvr::PhxBinlogClient::GetLastSendGtid(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)' init_with_phxbinlogsvr.cc:(.text+0x67c): undefined reference to
phxbinlogsvr::PhxBinlogClient::GetLastSendGtid(std::basic_string<char, std::char_traits/usr/local/src/phxsql/percona' make[2]: *** [storage/perfschema/unittest/CMakeFiles/pfs_connect_attr-t.dir/all] 错误 2 make[2]: Leaving directory
/usr/local/src/phxsql/percona'
make[1]: *** [all] 错误 2
make[1]: Leaving directory `/usr/local/src/phxsql/percona'
make: *** [mysql] 错误 2
同问,问题非常类似,以及如何试用build.sh
@beyondcat 应该是一样问题。build.sh直接运行即可,没有参数的