2014-10-12 119 views
0

当T尝试运行我的C++程序连接到MYSQL服务器时,出现错误。这是我的代码。Visual Studio C++连接到MYSQL服务器

#include "stdafx.h" 
#include <opencv2/highgui/highgui.hpp> 
#include "opencv2/imgproc/imgproc.hpp" 
#include "opencv2/opencv.hpp" 
#include <cmath> 
#include <iostream> 
#include "my_global.h" 
#include "mysql.h" 

int main() {MYSQL *conn; 
MYSQL_RES *res; 
MYSQL_ROW row; 
char *server = "server"; 
char *user = "user"; 
char *password = "password"; // got tot keep my data secret 
char *database = "cpp_test"; 
conn = mysql_init(NULL); 

// connect to database 
if(!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) 
{ 
    fprintf(stderr, "%s\n", mysql_error(conn)); 
    return -1; 
} 

// send SQL query 
if(mysql_query(conn, "select * from cpp_testTAB")) 
{ 
    fprintf(stderr, "%s\n", mysql_error(conn)); 
    return -1; 
} 

res = mysql_use_result(conn); 

// output table name 
printf("MySQL Tables in mysql database:\n"); 
while ((row = mysql_fetch_row(res)) != NULL) 
{ 
    printf("%s %s %s %s\n", row[0], row[1], row[2], row[3]); 
} 

// close connection 
mysql_free_result(res); 
mysql_close(conn); 
return 0; 
} 

这里是我另外包括目录

C:\Program Files (x86)\MySQL\MySQL Server 5.6\include 
C:\Program Files (x86)\MySQL\Connector.C++ 1.1\include 

附加库目录

C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib 
C:\Program Files (x86)\MySQL\Connector.C++ 1.1\lib\opt 

附加依赖​​

libmysql.lib 
mysqlcppconn-static.lib 

有,我有,当我尝试错误跑 该程序。

Error 1 error LNK2019: unresolved external symbol mysql_close referenced in function main 
Error 2 error LNK2019: unresolved external symbol mysql_free_result referenced in function main 
Error 3 error LNK2019: unresolved external symbol mysql_fetch_row referenced in function main 
Error 4 error LNK2019: unresolved external symbol mysql_use_result referenced in function main 
Error 5 error LNK2019: unresolved external symbol mysql_query referenced in function main 
Error 6 error LNK2019: unresolved external symbol mysql_error referenced in function main 
Error 7 error LNK2019: unresolved external symbol mysql_real_connect referenced in function main 
Error 8 error LNK2019: unresolved external symbol mysql_init referenced in function main 

Error 9 error LNK1120: 8 unresolved externals C:\Users\Lahiru\documents\visual studio 2010\Projects\Level4-Project\x64\Debug\Level4-Project.exe 

我无法解决此问题。如果任何人都可以向我展示错误或示例教程链接,那将很棒。

+0

看看最后一个错误。它在路径中有'x64',而在其他错误中有'Program Files(x86)'。看起来你已经混淆了32位和64位版本。 – PaulMcKenzie 2014-10-12 13:59:52

+0

我评论了mysql连接代码,其他代码将用于'x64',并且我已经为'x64'安装了所有的mysql库。但我认为你说的是​​对的。我怎样才能解决这个问题 ?我有x64 machaine – user3565768 2014-10-12 14:08:53

+0

如果它是一个64位应用程序,那么这些库必须是64位的。同样,这些库的路径对我来说是非常可疑的,因为它们被放置在32位应用程序使用的目录中。 – PaulMcKenzie 2014-10-12 14:10:56

回答

0

问题似乎是您正在构建64位应用程序,但提供了32位库。是什么让这个印象是这两条线:

Error 9 error LNK1120: 8 unresolved externals 
C:\Users\Lahiru\documents\visual studio 2010\Projects\Level4-Project\x64\Debug\Level4-Project.exe 

这:

C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib 

第一行有x64路径,但第二行显示您所寻找的库32位版本由于Program Files (x86)路径。

因此,请确保您的64位库与64位应用程序链接,或者将您的应用程序更改为32位并与32位库链接。

相关问题