2014-08-30 2 views
1

все. Я хочу использовать C++ для подключения Mysql, но он не работает: информация об ошибке являются:mysql C++ коннектор ошибка связи

error LNK2019: unresolved external symbol "__declspec(dllimport) public: char const * __thiscall sql::SQLString::c_str(void)const " ([email protected]@[email protected]@QBEPBDXZ) referenced in function [email protected]@YAXXZ$0 
error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall sql::SQLString::~SQLString(void)" ([email protected]@@[email protected]) referenced in function "void __cdecl RunConnectMySQL(void)" ([email protected]@YAXXZ) 
error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall sql::SQLString::SQLString(char const * const)" ([email protected]@@[email protected]@Z) referenced in function "void __cdecl RunConnectMySQL(void)" ([email protected]@YAXXZ) 
error LNK2019: unresolved external symbol "__declspec(dllimport) class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_driver_instance(void)" ([email protected]@[email protected]@[email protected]@XZ) referenced in function "class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_mysql_driver_instance(void)" ([email protected]@[email protected]@[email protected]@XZ) 

И у меня есть поиск и тот же вопрос в StackOverflow, но это не имеет должного ответа. и мой код:

#include <iostream> 
#include <string> 
#include <mysql_connection.h> 
#include <mysql_driver.h> 
#include <cppconn/driver.h> 
#include <cppconn/exception.h> 
#include <cppconn/resultset.h> 
#include <cppconn/statement.h> 
#include <cppconn/prepared_statement.h> 
using namespace std; 

void RunConnectMySQL() 
{ 
    sql::mysql::MySQL_Driver *driver = NULL; 
    sql::Connection *con = NULL; 
    Statement *state = NULL; 
    ResultSet *result = NULL; 
    try 
    { 
     driver = sql::mysql::get_mysql_driver_instance(); 
     con = driver->connect("tcp://127.0.0.1:3306","root",""); 
     state = con->createStatement(); 
     state->execute("use monitor"); 
     result = state->executeQuery("select * from address"); 
    } 
    catch(sql::SQLException & ex) 
    { 
     cout<<ex.what()<<endl; 
     return; 
    } 

    while(result->next()) 
    { 
     cout<<"source: "<<result->getString("source").c_str()<<endl; 
    } 
    state->close(); 
} 

int main() 
{ 
    RunConnectMySQL(); 
    system("pause"); 
    return 0; 
} 

Спасибо.

ответ

2

Вам необходимо связать библиотеку соединителей MySQL с вашим исполняемым файлом. Прежде чем делать это, вам нужно решить, какой тип ссылок вам нужен. Разъем MySQL поддерживает два разных типа связей: статические или динамический.

На official website есть учебное пособие, в котором показано, как создать простой проект в Netbeans с обоими типами ссылок. Я не знаю, используете ли вы Netbeans, но я уверен, что вы сможете реплицировать описанные операции в любой другой среде IDE.

Наконец, убедитесь, что вы правильно установили соединитель MySQL. Посмотрите на official documentation, чтобы понять, как это сделать для вашей операционной системы.