Неопределенная ссылка на библиотеку ODBC в Poco - PullRequest
0 голосов
/ 04 мая 2018

Я нахожусь в процессе создания программы, которая устанавливает связь с базой данных MySQL, используя ODBC. Я использую библиотеку Poco-Data-ODBC для того же. Я получаю следующую ошибку:

D:\Hardware\Windows\PocoODBC/PocoODBC.cpp:27: undefined reference to `__imp__ZN4Poco4Data4ODBC9Connector17registerConnectorEv'
D:\Hardware\Windows\PocoODBC/PocoODBC.cpp:34: undefined reference to `__imp__ZN4Poco4Data4ODBC9Connector19unregisterConnectorEv'
D:\Hardware\Windows\PocoODBC/PocoODBC.cpp:41: undefined reference to `__imp__ZN4Poco4Data4ODBC9Connector19unregisterConnectorEv'

Команда построения:

g++     -o dist/Debug/Msys64_MinGW-w64_7.3.0-Windows/pocoodbc build/Debug/Msys64_MinGW-w64_7.3.0-Windows/PocoODBC.o build/Debug/Msys64_MinGW-w64_7.3.0-Windows/main.o
-L/C/msys64/mingw64/bin -L/C/Program\ Files/MySQL/Connector.ODBC\ 5.3 -lodbc32 -lPocoDataODBC -lws2_32 -lPocoFoundation -lPocoData

Связанные библиотеки:

-lodbc32

-lPocoDataODBC

-lws2_32

-lPocoFoundation

-lPocoData

Исходный код:

#include <iostream>
#include <vector>
#include <array>
#include <queue>
#include <string>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <cstdint>
#include <windows.h>

#define POCO_WIN32_UTF8

#include <Poco/Event.h>
#include <Poco/Data/Data.h>
#include <Poco/Data/Session.h>
#include <Poco/Data/RecordSet.h>
#include <Poco/Data/ODBC/Connector.h>

Poco::Data::ODBC::Connector::registerConnector();
    //const std::string ConnectionString("DRIVER={MySQL ODBC 8.0 Driver}; SERVER=localhost; DATABASE=test; USER=venu; PASSWORD=venu; OPTION=3;");
    const std::string ConnectionString("Dsn=HamsterPro20 ANSI; USER=root; PASSWORD=tantra@123; OPTION=3;");
    Poco::Data::Session session("ODBC", ConnectionString);
    if(not session.isConnected())
    {
        std::cout << "Session connection failed" << std::endl;
        Poco::Data::ODBC::Connector::unregisterConnector();
        return false;
    }
    else
    {
        std::cout << "Session connection success" << std::endl;
        session.close();
        Poco::Data::ODBC::Connector::unregisterConnector();
        return true;
    }
  • Платформа: x64

  • ОС: Windows 10 Pro

  • Среда разработки: Msys64 (mingw-w64)

  • IDE: Netbeans

  • Компилятор: mingw-w64-x86_64-gcc 7.3.0-2

...