2013-05-09 152 views
1

編輯:C++連接到MySQL

我的問題是在這篇文章的底部的錯誤。

我的繼承人附加包含目錄

C:\Program Files\boost 
C:\Program Files\MySQL\MySQL Connector C++ 1.1.3\include 
C:\Program Files\MySQL\MySQL Server 5.6\include 

附加庫目錄

C:\Program Files\MySQL\MySQL Server 5.6\lib 
C:\Program Files\MySQL\Connector C++ 1.1.2\lib\opt 

附加依賴​​

libmysql.lib 
mysqlcppconn-static.lib 

繼承人我的代碼

#include <iostream> 
#include <cstdio> 
#include <cstdlib> 
using namespace std; 

#include <stdlib.h> 
#include <Windows.h> 
#include <mysql.h> 
#include "mysql_connection.h" 

#include <cppconn/driver.h> 
#define host "localhost" 
#define username "root" 
#define password "root" 
#define database "tests" 

int main() 
{ 
    MYSQL* conn; 
    conn = mysql_init(NULL); 
    if(conn) 
    { 
     mysql_real_connect(conn, host, username, password, database, 0, NULL, 0); 
    } 
    MYSQL_RES* res_set; 
    MYSQL_ROW row; 
    unsigned int i; 
    mysql_query(conn, "SELECT * FROM tbl_clients WHERE id = 1"); 
    res_set = mysql_store_result(conn); 
    unsigned int numrows = mysql_num_rows(res_set); 
    if(numrows) 
    { 
     row = mysql_fetch_row(res_set); 
     if(row != NULL) 
     { 
      cout << "Client ID : " << row[0] << endl; 
      cout << "Client Name: " << row[1] << endl; 
     } 
    } 
    if(res_set) 
    { 
     mysql_free_result(res_set); 
    } 
    if(conn) 
    { 
     mysql_close(conn); 
    } 

    return 0; 
} 

這些都是錯誤的,我得到

1>------ Build started: Project: okay, Configuration: Debug Win32 ------ 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>C:\Users\Damian\documents\visual studio 2012\Projects\okay\Debug\okay.exe : fatal error LNK1120: 8 unresolved externals 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

請幫幫忙,這個項目是因爲在我的班級約48小時,我已經花了這麼多時間試圖弄清楚這一點。

謝謝

回答

1

恭敬地說,你最近的兩個問題是編譯器/鏈接器問題。我瞭解你的挫敗感,因爲我知道如何編寫早,但對編譯器/鏈接器一無所知。當你得到一個時刻需要一些時間來閱讀:

  • 二進制VS對象文件
  • 庫/共享對象
  • 編譯
  • 連接
  • 功能忙玲(C對C++ )

要回答你的問題,我猜你是在Micros經常的Visual Studio:

  1. 你需要去項目屬性,並設置附加庫路徑(我看你這樣做,從您的最後一個職位)
  2. 你需要指定庫,我要出去上在這裏假設它會mysql.lib ...在鏈接器部分的某個地方有一個「附加庫」輸入,您將能夠識別它,因爲kernel32.lib將被整合。將mysql.lib添加到該部分。通過轉到包含二進制文件的mysql文件夾來確認名稱。
  3. 請確保您使用的是靜態庫,.dll會爲您提供不需要擔心的新問題。這通常通過設置正確的庫目錄來實現。許多C++庫將附帶包含正確庫的預編譯「靜態」和「動態」文件夾。
+0

哇感謝您的快速響應,只是編輯了我的上述帖子,並看到您的回覆。我會繼續努力吧 – 2013-05-09 15:52:55

+0

是的,他是對的。我錯過了指定** mysql.lib ** – Sanoob 2013-05-09 16:13:14

+0

那麼,至今仍然無濟於事。在任何文件夾中都沒有mysql.lib。我知道,當你說你只是在猜測,但如果我不得不猜測它是哪一個,我猜它必須是libmysql.lib。我已經包括了這一點,但仍然沒有。我一直在閱讀關於所有這些事情,我仍然卡住。 – 2013-05-09 18:52:41

1

這是由於鏈接器問題發生錯誤。 鏈接器無法找到所需的靜態或動態庫mysql.lib,mysqlcppconcon-static.lib,libmysql.dll和libmysql.lib)。 附加的lib設置是錯誤的。查看本站給出的路徑正確Building MySQL Connector/C++ Windows Applications with Microsoft Visual Studio

+0

感謝您的回覆,但我不知道我在做什麼錯了。我發現它必須是一個可能與我的附加依賴項,因爲我有這8個錯誤之前,甚至把libmysql.dll和mysqlcppconn-static.lib到其他依賴項。當我將它們添加到依賴項中時,沒有任何更改。我知道鏈接器可以找到這些文件,因爲有些修補它,當我發現我的舊錯誤是我沒有包含庫目錄。但現在我做了,但這些錯誤仍然會出現 – 2013-05-09 15:45:16