链接Visual Studio 10中的MySQL库

Linking MySQL libraries in Visual Studio 10

本文关键字:MySQL 中的 Visual Studio 链接      更新时间:2023-10-16

我正在尝试将MySQL与Visual Studio 2010一起使用。我添加了MySQL包含目录:

C: \Program Files\MySQL\MySQL Server 5.5\包含

到VC++目录->包含目录下的项目属性。

并添加:

C: \Program Files\MySQL\MySQL Server 5.5\lib

&

C: \Program Files\MySQL\MySQL Server 5.5\lib\debug

到VC++目录->库目录。

几天前它还在工作,但现在由于以下错误而停止工作:

致命错误LNK1120:7个未解析的外部

有人能帮忙吗,谢谢。

更新:从Include干燥剂中删除了C:\Program Files\MySQL\MySQL Server 5.5\lib\debug目录,然后将以下lib文件添加到Linker->附加依赖项中:

C: \Program Files\MySQL\MySQL Server 5.5\lib\mysqlclient.libC: \Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib

这会产生以下错误:

1> LIBCMT.lib(invarg.obj(:错误LNK2005:__set_invalid_parameter_handler已在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(invarg.obj(中定义:错误LNK2005:__invoke_watson已在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(setlocal.obj(中定义:错误LNK2005:__configthreadlocale已在MSVCRTD.lib(MSVCR100D.dll(中定义1> LIBCMT.lib(crt0dat.obj(:错误LNK2005:__initterm_e已经存在在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(crt0dat.obj(中定义:错误LNK2005:_exit已在MSVCRTD.lib(MSVCR100D.dll(中定义1> LIBCMT.lib(crt0dat.obj(:错误LNK2005:__exit已在中定义MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(crt0dat.obj(:错误LNK2005:__cexit已在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(crt0dat.obj(中定义:错误LNK2005:__amsg_exit已定义在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(dosmap.obj(中:错误LNK2005:__errno已在MSVCRTD.lib(MSVCR100D.dll(中定义1> LIBCMT.lib(file.obj(:错误LNK2005:__iob_func已定义在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(mlock.obj(中:错误LNK2005:__解锁已在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(mlock.obj(中定义:错误LNK2005:__lock已在中定义MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(winxfltr.obj(:错误LNK2005:__Xcpt筛选器已在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(crt0.obj(中定义:错误LNK2005:_mainCRTStartup已存在在MSVCRTD.lib(crtxe.obj(1>LIBCMT.lib(hook.obj(中定义:errorLNK2005:"void __cdecl terminate(void("(?terminate@@YAXXZ(已经存在在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(winsig.obj(中定义:错误LNK2005:信号已在MSVCRTD.lib(MSVCR100D.dll(中定义1> LIBCMT.lib(crt0init.obj(:错误LNK2005:__xi_a已在中定义MSVCRTD.lib(cinitexe.obj(1>LIBCMT.lib(crt0init.obj___xi_z已在MSVCRTD.lib(cinitexe.obj(1>LIBCMT.lib(crt0init.objMSVCRTD.lib(cinitexe.obj(1>LIBCMT.lib(crt0init.obj___xc_z已在MSVCRTD.lib(cinitexe.obj(1>LIBCMT.lib(fflush.obj(中定义:错误LNK2005:_fflush已在中定义MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(atox.obj(:错误LNK2005:atoi已在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(errmode.obj(中定义:错误LNK2005:__set_app_type已存在在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(strtol.obj(中定义:错误LNK2005:_strtol已在MSVCRTD.lib(MSVCR100D.dll(中定义1> LIBCMT.lib(strtol.obj(:错误LNK2005:_strtoul已在中定义MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(strnicmp.obj(:错误LNK2005:__strnicmp已在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(osfinfo.obj(中定义:错误LNK2005:__get_osfhandle已存在在MSVCRTD.lib(MSVCR100D.dll(1>LIBCMT.lib(osfinfo.obj(中定义:错误LNK2005:__open_osfhandle已在中定义MSVCRTD.lib(MSVCR100D.dll(1>链接:警告LNK4098:defaultlib"MSVCRTD"与其他库的使用冲突;使用/NODEFAULTLIB:库1> 链接:警告LNK4098:defaultlib"LIBCMT"与的使用冲突其他libs;使用/NODEFAULTLIB:库

这里的问题是我试图在本地PC上使用Visual Studio来创建和测试用于远程Linux系统的C++程序。我这样做是因为我喜欢VS调试,但它最终造成了更多值得的麻烦。

相反,我现在已经开始在linux服务器上使用GDB,它运行得很好。它的GUI有点少,但它可以工作。

这样一来,编程的时间就多了,在下拉菜单中摆弄设置的时间就少了。