phxsql icon indicating copy to clipboard operation
phxsql copied to clipboard

编译错误

Open lukechen72 opened this issue 7 years ago • 4 comments

在编译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, std::allocator > const&, std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > >, bool, std::basic_string<char, std::char_traits, std::allocator >, std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > >*)' phxsync_utils.cc:(.text+0x636): undefined reference to `phxbinlogsvr::PhxBinlogClient::SendBinLog(std::basic_string<char, std::char_traits, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator > const&)'。。。。。

lukechen72 avatar Aug 24 '17 02:08 lukechen72

请问使用build.sh来编译的吗? phxbinlogsvr要在percona之前编译。正确的编译顺序是先编出percona里的mysql client,然后是phxbinlogsvr,最后才是percona。如果你用build.sh来编译,应该能正确处理这依赖。

wodesuck avatar Aug 24 '17 02:08 wodesuck

[ 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_traits, std::allocator > const&, std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > >, bool, std::basic_string<char, std::char_traits, std::allocator >, std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > >)' phxsync_utils.cc:(.text+0x636): undefined reference to phxbinlogsvr::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_traits, std::allocator >&)': init_with_phxbinlogsvr.cc:(.text+0x551): undefined reference to phxbinlogsvr::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, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator >*)' collect2: ld 返回 1 make[3]: *** [storage/perfschema/unittest/pfs_connect_attr-t] 错误 1 make[3]: Leaving directory /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 avatar Nov 10 '17 07:11 beyondcat

@beyondcat 应该是一样问题。build.sh直接运行即可,没有参数的

wodesuck avatar Nov 13 '17 06:11 wodesuck