游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1467|回复: 3

使用C++的"<<"输出 链接提示重定

[复制链接]

10

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2007-1-30 10:22:00 | 显示全部楼层 |阅读模式
自从我使用了一个网上的静态Lib库以后,只要我在我的程序中使用"<<"或者">>"进行输入输出操作就会链接出错,说是重定义, 不使用"<<"或者">>"就完全正确。这可能是什么原因导致的呢?
"<<"或者">>"只是重载运算符的函数调用,没有什么定义操作啊。
就算是使用cout<<endl 也会链接出错。

链接错误信息:
error LNK2005: "public: void __thiscall std::_Mutex::_Lock(void)" (?_Lock@_Mutex@std@@QAEXXZ) 已经在 XXX.obj 中定义


XXX.obj 是使用了"<<"或者">>"的源代码编译出的目标文件

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2007-1-30 14:00:00 | 显示全部楼层

Re:使用C++的"<<"输出 链接提示重定义是怎么回

简而言之,你的Runtime可能有问题。

28

主题

433

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2007-1-30 19:01:00 | 显示全部楼层

Re:使用C++的"<<"输出 链接提示重定义是怎么回

很正常~~~
你用 的那个 库
把 &quot;&lt;&lt;&quot; 给 重定义了~~~

你要是 使用 标准的库中的&quot;&lt;&lt;&quot;
肯定 link不上的~~
名字相同了~

0

主题

199

帖子

199

积分

注册会员

Rank: 2

积分
199
发表于 2007-1-30 21:20:00 | 显示全部楼层

Re:使用C++的"<<"输出 链接提示重定义是怎么回

“&lt;&lt;”并没有重定义。已经定义的是Mutex:ock函数。
这种问题通常很麻烦,一种办法是连接时去掉包含Mutex::Lock的那个库。不过这可能出新问题。
比较保险的办法是,把那个静态库编译成一个dll,再连接进来。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 09:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表