Cut*_*ute 4 visual-studio-2005 crt msvcrt visual-c++
我一直有以下形式的链接器错误:
libcmtd.dll msvmrtd.dll 已经定义了一些元素(例如:_mkdir) ...
我不知道如何解决它们.
这是一个完整的错误消息:
private:__ thiscall type_info :: type_info(class type_info const&)"(?? 0type_info @@ AAE @ ABV0 @@ Z)已在LIBCMTD.lib(typinfo.obj)中定义
MSVCRTD.lib(ti_inst.obj):错误LNK2005:已在LIBCMTD.lib中定义的"private:class type_info&__thiscall type_info :: operator =(class type_info const&)"(?? 4type_info @@ AAEAAV0 @ ABV0 @@ Z) (typinfo.obj)
你能帮我解决这个问题吗?
检查一下:
你的头文件是否受到保护.即他们有#ifndef卫兵.
您是否在没有inline关键字的标题中定义(非模板)函数.这让很多东西搞砸了.
您是否尝试在.cpp文件中定义模板.所有模板定义都需要在标题中.
请发布一些代码和确切的错误文本!
您的问题是您正在链接两个提供相同符号的文件。
您尚未提供真正的错误消息,因此我们无法准确告诉您问题是什么,但很可能您正在链接来自两个不同版本的 Visual Studio 的库。
还可以通过搜索网络找到可用的解决方案(我假设您这样做了,但只是错过了相关文章:-),建议您可以通过将项目选项从 更改为 来解决问题,"Multi-threaded Debug(/MTd)"但"Multi-threaded Debug DLL (/MTD)"我还没有研究过这一点。
请发布完整的错误,以便我们提供更有针对性的帮助。