C++ Visual Studio 2010-链接MySQL

C++ Visual Studio 2010-链接MySQL,c++,mysql,visual-studio-2010,C++,Mysql,Visual Studio 2010,我给了自己一个项目来熟悉Windows编程和Visual Studio。我很难链接到MySQL库以便在项目中使用它。我不断收到LNK2019错误,这很可能意味着我没有正确链接.lib文件。我已经将其配置设置为包括include目录和library目录。(我还尝试了设置VC++目录和C/C++/Linker的不同组合。) 以下是我在线复制并试图编译的代码片段: MYSQL *connection, mysql; MYSQL_RES *result; MYSQL_ROW row; int query

我给了自己一个项目来熟悉Windows编程和Visual Studio。我很难链接到MySQL库以便在项目中使用它。我不断收到LNK2019错误,这很可能意味着我没有正确链接.lib文件。我已经将其配置设置为包括include目录和library目录。(我还尝试了设置VC++目录和C/C++/Linker的不同组合。)

以下是我在线复制并试图编译的代码片段:

MYSQL *connection, mysql;
MYSQL_RES *result;
MYSQL_ROW row;
int query_state;

mysql_init(&mysql);
//connection = mysql_real_connect(&mysql,"host","user","password","database",0,0,0);
connection = mysql_real_connect(&mysql,"localhost","bainm","not_telling","cpp_data",0,0,0);
if (connection == NULL) {
    //cout << mysql_error(&mysql) << endl;
    //return 1;
}
我将我的配置为包含MySQL的库目录。这是链接器下命令行中的外观:

/OUT:"D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\Debug\swtPrice Server.exe" /NOLOGO /LIBPATH:"D:\Program Files\MySQL\MySQL Server 5.5\lib" "D:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"Debug\swtPrice Server.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\Debug\swtPrice Server.pdb" /SUBSYSTEM:CONSOLE /PGD:"D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\Debug\swtPrice Server.pgd" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE
以下是mySQL库目录的外观:

 Directory of D:\Program Files\MySQL\MySQL Server 5.5\lib

05/06/2011  10:38 AM    <DIR>          .
05/06/2011  10:38 AM    <DIR>          ..
05/06/2011  10:38 AM    <DIR>          debug
03/31/2011  04:53 PM         4,177,408 libmysql.dll
03/31/2011  04:53 PM            23,920 libmysql.lib
03/31/2011  04:52 PM        10,625,266 mysqlclient.lib
05/06/2011  10:38 AM    <DIR>          plugin
D:\Program Files\MySQL\MySQL Server 5.5\lib目录 2011年6月5日上午10:38。 2011年6月5日上午10:38。。 2011年6月5日上午10:38调试 2011年3月31日04:53下午4177408 libmysql.dll 2011年3月31日04:53下午23920 libmysql.lib 2011年3月31日04:52下午10625266 mysqlclient.lib 2011年6月5日上午10:38
感谢您的帮助。提前感谢您的帮助。

我遇到了与VisualStudio2010中所有mysql api函数的链接错误相同的问题。我确认问题是由于在VisualStudio中使用32位目标和64位MySQL构建造成的。我在构建配置中添加了一个x64构建,它链接时没有出现任何错误

您是否尝试将mysqlclient.lib添加到构建中?另外,一定要检查32位库,我记得有一个类似的问题,就是这样。我卸载了mySQL并安装了32位版本,我的代码编译得很好。以前,我有一个64位版本的mySQL,大约在一年前安装。但是,我现在遇到了“程序无法启动,因为您的计算机中缺少libmysql.dll。请尝试重新安装程序以解决此问题。”谢谢您的建议。让它运行。有人知道如何指定.dll文件路径而不是将.dll放在同一个目录.exe中吗?除了编辑环境路径变量之外,我不知道。如果将其放置在可执行文件附近或下方的目录结构中,则会对其进行搜索。因此,如果您的可执行文件位于C:/my_-app/bin.exe,而dll位于C:/my_-app/dll/libmysql.dll,就可以了。
/OUT:"D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\Debug\swtPrice Server.exe" /NOLOGO /LIBPATH:"D:\Program Files\MySQL\MySQL Server 5.5\lib" "D:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"Debug\swtPrice Server.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\Debug\swtPrice Server.pdb" /SUBSYSTEM:CONSOLE /PGD:"D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\Debug\swtPrice Server.pgd" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE
 Directory of D:\Program Files\MySQL\MySQL Server 5.5\lib

05/06/2011  10:38 AM    <DIR>          .
05/06/2011  10:38 AM    <DIR>          ..
05/06/2011  10:38 AM    <DIR>          debug
03/31/2011  04:53 PM         4,177,408 libmysql.dll
03/31/2011  04:53 PM            23,920 libmysql.lib
03/31/2011  04:52 PM        10,625,266 mysqlclient.lib
05/06/2011  10:38 AM    <DIR>          plugin