2013-05-09 140 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