我正在尝试在Visual Studio 2010中使用MySQL。 我添加了MySQL include目录:
C:\ Program Files \ MySQL \ MySQL Server 5.5 \ include
...到VC ++目录下的项目属性 - >包括目录。
并补充道:
C:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib
&安培;
C:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib \ debug
...到VC ++目录 - >图书馆目录。
它在几天前工作,但现在已停止处理以下错误:
致命错误LNK1120:7个未解析的外部
任何人都可以帮忙,谢谢。
更新: 从Include driectories中删除了C:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib \ debug目录,然后将以下lib文件添加到Linker - >其他依赖项:
C:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib \ mysqlclient.lib C:\ 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:__ initit_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: __unlock已在MSVCRTD.lib中定义(MSVCR100D.dll)1> LIBCMT.lib(mlock.obj):错误LNK2005:__lock已在 MSVCRTD.lib(MSVCR100D.dll)1> LIBCMT.lib(winxfltr.obj):错误LNK2005: __XcptFilter已在MSVCRTD.lib(MSVCR100D.dll)中定义1> LIBCMT.lib(crt0.obj):错误LNK2005:_mainCRTStartup已经 在MSVCRTD.lib(crtexe.obj)中定义1> LIBCMT.lib(hooks.obj):错误 LNK2005:“void __cdecl terminate(void)”(?终止@@ 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):错误LNK2005: ___xi_z已在MSVCRTD.lib中定义(cinitexe.obj)1> LIBCMT.lib(crt0init.obj):错误LNK2005:___ xc_a已在 MSVCRTD.lib(cinitexe.obj)1> LIBCMT.lib(crt0init.obj):错误LNK2005: ___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> LINK:警告LNK4098:defaultlib 'MSVCRTD'与使用其他libs冲突;使用/ NODEFAULTLIB:库 1> LINK:警告LNK4098:defaultlib'LIBCMT'与使用冲突 其他图书馆;使用/ NODEFAULTLIB:库
答案 0 :(得分:0)
这里的问题是我试图在我的本地PC上使用Visual Studio来创建和测试目标为远程Linux系统的C ++程序。 我之所以这样做,是因为我喜欢VS调试,但最终导致了更多的麻烦。
相反,我现在开始在Linux服务器上使用GDB,它运行良好。 它的GUI有点少,但它可以工作。
结果是花费更多的时间编写更少的时间来摆弄下拉菜单中的设置。