我正在使用Mysql 5.5,插件需要查詢一個thrift接口服務器的一些信息。我創建基本上打開到服務器的連接,獲得一個狀態,然後關閉連接節儉客戶端:可能在mysql插件中使用節儉?
#include "../../xxxx/gen-cpp/Xxxx.h"
#include <transport/TSocket.h>
#include <transport/TBufferTransports.h>
#include <protocol/TBinaryProtocol.h>
using namespace apache::thrift;
using namespace apache::thrift::protocol;
using namespace apache::thrift::transport;
using namespace ::za::co::xxxx;
int main(int argc, char **argv) {
boost::shared_ptr<TSocket> socket(new TSocket("localhost", 9090));
boost::shared_ptr<TTransport> transport(new TBufferedTransport(socket));
boost::shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));
XxxxServiceClient client(protocol);
transport->open();
client.getStatus();
transport->close();
return 0;
}
我再改的main()的函數名並將其添加到插件代碼文件和從主函數中調用它。 插件代碼建立罰款,但地圖現在包含了一大堆節儉參考和嘗試加載的插件,我得到這個錯誤:
ERROR 1126 (HY000): Can't open shared library '/usr/lib/mysql/plugin/libxxxx.so' (errno: 13 undefined symbol: _ZTVN6apache6thrift9transport18TBufferedTransportE)
有沒有什麼辦法讓解決這些新節儉引用在安裝插件?它安裝並運行正常,沒有上述代碼。