我给了自己一个项目,以熟悉Windows编程和Visual Studio。我无法链接到MySQL库,因此我可以在我的项目中使用它。我不断收到LNK2019错误,这很可能意味着我没有正确链接.lib文件。我已经将其配置设置为包含include目录和库目录。 (我也尝试设置VC++目录和C/C++ /连接器的不同组合。)Visual Studio 2010 - 链接MySQL
Error 1 error LNK2019: unresolved external symbol [email protected] referenced in function "public: void __thiscall Database::connect_db(void)" ([email protected]@@QAEXXZ) D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\swtPrice Server\Database.obj
Error 2 error LNK2019: unresolved external symbol [email protected] referenced in function "public: void __thiscall Database::connect_db(void)" ([email protected]@@QAEXXZ) D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\swtPrice Server\Database.obj
Error 3 error LNK1120: 2 unresolved externals D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\Debug\swtPrice Server.exe 1
这里是我的在线复制的代码片段,并试图编译:
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的include目录。这是怎么看起来像在C/C++选项卡下的命令行:
/I"D:\Program Files\MySQL\MySQL Server 5.5\include" /ZI /nologo /W1 /WX- /Od /Oy- /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yu"StdAfx.h" /Fp"Debug\swtPrice Server.pch" /Fa"Debug\" /Fo"Debug\" /Fd"Debug\vc100.pdb" /Gd /analyze- /errorReport:queue
我配置了我,包括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
任何帮助表示赞赏。预先感谢您的任何帮助。
您是否尝试将mysqlclient.lib添加到您的构建?此外,一定要检查你有32位库,我记得有一个类似的问题。 – 2012-01-13 01:58:50
就是这样。我卸载了mySQL并安装了32位版本,我的代码编译得很好。以前,我有一个大约一年前安装的64位版本的mySQL。 但是,我现在遇到“该程序无法启动,因为您的计算机缺少libmysql.dll,请尝试重新安装程序来解决此问题。” 谢谢你的建议。 – swtdrgn 2012-01-14 00:13:04
得到它运行。有谁知道如何指定一个.dll文件路径,而不是将.dll引入到相同的目录.exe中? – swtdrgn 2012-01-14 03:35:34