簡體   English   中英

MySQL C ++連接器鏈接錯誤

[英]mysql c++ connector linking error

大家。 我想使用C ++連接Mysql,但是不起作用:錯誤信息是:

error LNK2019: unresolved external symbol "__declspec(dllimport) public: char const * __thiscall sql::SQLString::c_str(void)const " (__imp_?c_str@SQLString@sql@@QBEPBDXZ) referenced in function __catch$?RunConnectMySQL@@YAXXZ$0
error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall sql::SQLString::~SQLString(void)" (__imp_??1SQLString@sql@@QAE@XZ) referenced in function "void __cdecl RunConnectMySQL(void)" (?RunConnectMySQL@@YAXXZ)
error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall sql::SQLString::SQLString(char const * const)" (__imp_??0SQLString@sql@@QAE@QBD@Z) referenced in function "void __cdecl RunConnectMySQL(void)" (?RunConnectMySQL@@YAXXZ)
error LNK2019: unresolved external symbol "__declspec(dllimport) class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_driver_instance(void)" (__imp_?get_driver_instance@mysql@sql@@YAPAVMySQL_Driver@12@XZ) referenced in function "class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_mysql_driver_instance(void)" (?get_mysql_driver_instance@mysql@sql@@YAPAVMySQL_Driver@12@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;
}

謝謝。

您需要將MySQL連接器庫鏈接到可執行文件。 在執行此操作之前,您需要確定應該選擇哪種鏈接。 MySQL連接器支持兩種不同類型的鏈接: staticdynamic

官方網站上有一個教程,顯示了如何使用兩種鏈接類型在Netbeans中創建一個簡單項目。 我不知道您是否使用Netbeans,但我很確定您將能夠在任何其他IDE上復制所描述的操作。

最后,請確保已正確安裝了MySQL連接器。 請參閱官方文檔 ,以了解如何針對您的操作系統執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM