fatal error LNK1169: 找到一个或多个多重定义的符号

举报
liuzhen007 发表于 2021/05/26 18:39:25 2021/05/26
【摘要】 今天遇到一种fatal error LNK1169报错的特殊情况,之前一直没有注意。不是一般的常见问题,解决方法可能没有普遍的适用性。先说一下现象,一般情况下C++程序,都会在.h文件中声明方法,在.cpp文件中定义方法,可是一般遇到非常简单的方法就会在.h文件中声明并直接定义了。我一直是这么认为的,而且认为这样做是没有问题的。 但是,今天现实给我上了一课,这样的认识是非常...

今天遇到一种fatal error LNK1169报错的特殊情况,之前一直没有注意。不是一般的常见问题,解决方法可能没有普遍的适用性。先说一下现象,一般情况下C++程序,都会在.h文件中声明方法,在.cpp文件中定义方法,可是一般遇到非常简单的方法就会在.h文件中声明并直接定义了。我一直是这么认为的,而且认为这样做是没有问题的。

但是,今天现实给我上了一课,这样的认识是非常局限的,如果这个非常简单的方法只在对应的.cpp文件中使用,那么这样做是完全没有问题的。但是,如果这个方法还被其他.cpp文件调用,而且这些.cpp文件之间还存在依赖关系,那就会出现问题,异常报错“fatal error LNK1169: 找到一个或多个多重定义的符号”就会出现。

下面就是那个非常简单的方法:


  
  1. tstring FormatVCAResult(const VCAResult& result){
  2. tstring strResult;
  3. //...
  4. return strResult;
  5. }

这是本人今天遇到的一个特殊情况,网上的大众方法试了很多都没有用,如果遇到这个报错,网上其他的方法行不通的话,可以考虑是不是本文的情况,希望能帮到大家。

文章来源: liuzhen.blog.csdn.net,作者:Data-Mining,版权归原作者所有,如需转载,请联系作者。

原文链接:liuzhen.blog.csdn.net/article/details/72850459

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。