编辑:
我的问题是这篇文章底部的错误。
这是我的附加包含目录
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 _mysql_num_rows@4 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_init@4 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_real_connect@32 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_query@8 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_store_result@4 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_free_result@4 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_fetch_row@4 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_close@4 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 ==========
请帮忙,这个项目大约在我的类(class) 48 小时内到期,我花了很多时间试图解决这个问题。
谢谢
最佳答案
尊敬的,您的最后两个问题是编译器/链接器问题。我理解您的沮丧,因为我很早就知道如何编码,但对编译器/链接器一无所知。当您有时间时,请花一些时间阅读以下内容:
- 标题
- 二进制文件与目标文件
- 库/共享对象
- 编译器
- 链接器
- 函数修饰(C 与 C++)
为了回答您的问题,我猜您是在 Microsoft Visual Studio 中执行此操作:
- 您需要转到“项目属性”并设置“其他库路径”(我看到您在上一篇文章中做到了这一点)
- 您需要指定库,我在这里冒险并假设它将
mysql.lib
...在链接器部分的某处有一个“附加库”输入,您'将能够识别它,因为kernel32.lib
将对其进行 int 处理。将 mysql.lib 添加到该部分。转至保存二进制文件的 mysql 文件夹来确认名称。 - 确保您使用的是静态库,
.dll
会给您带来无需担心的新问题。这通常是通过设置正确的库目录来实现的。许多 C++ 库都会附带预编译的“静态”和“动态”文件夹,其中包含正确的库。
关于MySQL 的 C++ 连接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16455350/