0
我正在使用poco-1.7.7和MySQL。我在Ubuntu上用g ++編譯。建設,連接和運行良好。 但是,創建數據會話時,一個異常「找不到的:mysql」拋出:安裝Poco C++庫:「未找到:mysql」
std::string str = Poco::format("host=%s;user=%s;password=%s;compress=true;auto-reconnect=true;secure-auth=true", _mySQLParams.host, _mySQLParams.user, _mySQLParams.password);
_session = new Poco::Data::Session(Poco::Data::SessionFactory::instance().create(Poco::Data::MySQL::Connector::KEY, str));
MySQL客戶端和爲$ PATH的一部分。
附加信息:我使用Docker運行Ubuntu。請參閱下面的Makefile。當我編譯並運行在MacOSX上時,相同的代碼可以連接到MySQL。
你知道這裏出了什麼問題嗎?
段從生成文件:
CXX=g++
HEADER_SEARCH_PATH=-I"../../Core/Application/" -I"../../Core/Model/" -I"../../Core/Object/" -I"../../Core/UserInterface/" -I"/usr/local/include/" -I"/usr/include/mysql"
LIB_SEARCH_PATH=-L/usr/local/lib -L/usr/lib/x86_64-linux-gnu
LIBS=-l"PocoJSON" -l"PocoXML" -l"PocoUtil" -l"PocoNet" -l"PocoFoundation" -l"crypto" -l"ssl" -l"PocoCrypto" -l"PocoData" -l"PocoDataMySQL" `pkg-config --libs --cflags icu-uc icu-io`
PPD=-DMPS_MYSQL=1
CXXFLAGS=-std=c++11 -g -m64 -pthread -Wl,--verbose -fabi-version=2 -fno-omit-frame-pointer $(HEADER_SEARCH_PATH) $(PPD)
Poco帶有源代碼。我確定可以調試它來查看拋出異常的位置和原因。 – PaulMcKenzie
@PaulMcKenzie感謝您的調試提示。在我發現很多調試之後,出於某種原因MySQL連接器沒有被初始化。顯式調用'Poco :: Data :: MySQL :: Connector :: registerConnector();'解決了這個問題。 – DanielGrams