2011-11-16 118 views
1

我试图使用MySQL与Visual Studio 2010 我已经添加了MySQL的include目录:在Visual Studio中链接的MySQL库10

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++目录 - >库目录。

这是工作一前两天,但现在已经停止,出现以下错误工作:

fatal error LNK1120: 7 unresolved externals

任何人的帮助,谢谢。

UPDATE: 删除了C:\ Program Files文件\的MySQL \ MySQL服务器5.5 \ LIB \调试从包括driectories,然后添加下面的LIB文件的链接目录 - >附加依赖:

C: \ Program Files文件\的MySQL \ MySQL服务器5.5 \ LIB \ mysqlclient.lib C:\ Program Files文件\的MySQL \ MySQL服务器5.5 \ LIB \ libmysql.lib

这genertaes以下错误:

1>LIBCMT.lib(invarg.obj) : error LNK2005: __set_invalid_parameter_handler already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(setlocal.obj) : error LNK2005: __configthreadlocale already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(crt0dat.obj) : error LNK2005: __initterm_e already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(crt0dat.obj) : error LNK2005: _exit already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(crt0dat.obj) : error LNK2005: __exit already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(crt0dat.obj) : error LNK2005: __cexit already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(crt0dat.obj) : error LNK2005: __amsg_exit already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(dosmap.obj) : error LNK2005: __errno already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(file.obj) : error LNK2005: __iob_func already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(mlock.obj) : error LNK2005: __unlock already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(mlock.obj) : error LNK2005: __lock already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(crt0.obj) : error LNK2005: _mainCRTStartup already defined in MSVCRTD.lib(crtexe.obj) 1>LIBCMT.lib(hooks.obj) : error LNK2005: "void __cdecl terminate(void)" ([email protected]@YAXXZ) already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(winsig.obj) : error LNK2005: signal already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(crt0init.obj) : error LNK2005: __xi_a already defined in MSVCRTD.lib(cinitexe.obj) 1>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in MSVCRTD.lib(cinitexe.obj) 1>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in MSVCRTD.lib(cinitexe.obj) 1>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in MSVCRTD.lib(cinitexe.obj) 1>LIBCMT.lib(fflush.obj) : error LNK2005: _fflush already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(atox.obj) : error LNK2005: atoi already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(errmode.obj) : error LNK2005: __set_app_type already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(strtol.obj) : error LNK2005: _strtol already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(strtol.obj) : error LNK2005: _strtoul already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(strnicmp.obj) : error LNK2005: __strnicmp already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(osfinfo.obj) : error LNK2005: __get_osfhandle already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LIBCMT.lib(osfinfo.obj) : error LNK2005: __open_osfhandle already defined in MSVCRTD.lib(MSVCR100D.dll) 1>LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library 1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library

+0

什么是未解决的外部问题 - 请显示完整错误 – Mark

+0

您必须在链接器 - >附加依赖项下指定库名称本身(除非使用自动链接,但似乎并非如此)。除此之外,提供lib和lib/debug子目录并不是一个好主意,请选择其中一个。 – stijn

+0

谢谢,我放弃了调试参考,并添加了额外的依赖关系,但是这给了我上面显示的错误(在更新后的问题中)。 – Columbo

回答

0

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

现在我已经开始在Linux服务器上使用GDB了,它运行良好。 这是一个少一点的图形用户界面,但它的工作原理。

结果是更多的时间编程更少的时间摆弄下拉菜单中的设置。