请教一个关于LINK 2005的错误!急!!!!!!!!!!

rabbit729 2007-08-03 11:03:27
小弟的程序是在VC6.0下的控制台程序,其中分别用到下面的文件:#include <afx.h> #include <mx.h>其中"afx.h"是MFC的类库,"mx.h"是一个别人提供的一个lib的头文件,我的程序编译时没问题,可是在链接时出现如下错误:
msvcprtd.lib(MSVCP60D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_strin
g@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in mxflib.lib(mdobject.obj)
我在网上查找相关资料,说是VC运行库的版本不同而造成的,也就是说有些库生成时是Debuge,有些是Release,需要将它们的版本和自己程序的版本搞成一样才能解决,可是我已经这么做了还是不行,或者是我做错了,请高手指教,还有我想问一下:MFC的类库在提供时是Debuge的还是Release的?多谢了!!!!
...全文
332 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Vitin 2007-08-04
  • 打赏
  • 举报
回复
mxflib.lib 应该是静态链接了某个版本的标准库。LZ的程序应该也链接同样的版本,否则就会冲突。

VC6有六个版本的标准库,分别是 <Debug,Release> * <SingleThreaded,MultiThreaded,MultiThreaded DLL> ,比如msvcprtd.lib是 Debug MultiThreaded DLL。
LZ可以试试其他的,总有一个会匹配上。
在Setting -- C/C++ -- Code Generation 中可以修改。
rabbit729 2007-08-03
  • 打赏
  • 举报
回复
怎么没人回呀,自己顶一下!
seysey 2007-08-03
  • 打赏
  • 举报
回复
如果你在lib的头文件里“声明并且定义并且实现”了basic_string(好像是构造和析构函数),然后在多个文件中都包含了这个头文件或者你在其他引用了这个头文件的文件中重新定义实现这个构造和析构函数,就会出现重复定义的错误。
全局函数不能被重复定义。
如果是这个错误,则只在lib头文件中声明,把实现basec_string构造和析构放在cpp中。
最好在头文件前面加上
#ifndef _EXAMPLE_H_
#define _EXAMPLE_H_
....
seysey 2007-08-03
  • 打赏
  • 举报
回复
这个应该是一个重定义错误,是不是在lib文件里声明并且定义了一个全局的basic_string,你又在自己的文件里定义了一个?
检查一下
freshui 2007-08-03
  • 打赏
  • 举报
回复
vc6可以扔了
tiantang3gm 2007-08-03
  • 打赏
  • 举报
回复
使用VS 2005看看,VC6.0的STL有问题。
如果还有问题那就要看代码了。。
gfxiang 2007-08-03
  • 打赏
  • 举报
回复
MFC类库分别提供了Debug和Release版本。一般*d.lib,*d.dll的都表示Debug版本。比如你上面的msvcprtd.lib(msvcp60d.dll)都是debug版本。

既然msvcprtd.lib和mxflib.lib都有basic_string,要不链接的时候只选其中一个lib试试

翻翻写这个lib的人提供的手册使用说明之类的东西
rabbit729 2007-08-03
  • 打赏
  • 举报
回复
怎么了,高手都去那了,大家给帮帮忙呀,多谢了!

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧