文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。


笔记资料仅供学习交流使用,转载请标明出处,谢谢配合。
如果存在相关知识点的遗漏,可以在评论区留言,看到后将在第一时间更新。
作者:Aliven888

1、背景

  今天周末在整理自己的常用函数库时,突然遇到了一个问题,觉得很有意思,和各位共享一下。

环境:
  笔记本:win7 x64
  编译器:Visual Studio 2015
  编译环境:Release x86

问题描述:

1>STLMap.obj : error LNK2005: "void __cdecl merge(class std::vector<int,class std::allocator<int> > &,int,class std::vector<int,class std::allocator<int> > &,int)" (?merge@@YAXAAV?$vector@HV?$allocator@H@std@@@std@@H0H@Z) 已经在 ConsoleApplication.obj 中定义
1>STLMap.obj : error LNK2005: "int __cdecl maxProfit(class std::vector<int,class std::allocator<int> > &)" (?maxProfit@@YAHAAV?$vector@HV?$allocator@H@std@@@std@@@Z) 已经在 ConsoleApplication.obj 中定义
1>STLMap.obj : error LNK2005: "long __stdcall MyUnhandledExceptionFilter(struct _EXCEPTION_POINTERS *)" (?MyUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z) 已经在 ConsoleApplication.obj 中定义
1>STLMap.obj : error LNK2005: "void __cdecl MyDumpGenerate(void)" (?MyDumpGenerate@@YAXXZ) 已经在 ConsoleApplication.obj 中定义
1>D:\VS2015\Project\AlivenProject\\ConsoleApplication\bin\Win32\Release\ConsoleApplication.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

问题分析:
  首先说一下出现这种问题的前提:我在整理自己写的常用函数库时,将头文件都都已放在了一个 AlivenLibDef.h 文件中(新建的),但是我在链接(导入头文件)时,却链接(导入头文件)成了 ConsoleApplicationdef.h (项目的头文件,用于引入常用函数库)。

截图如下:

解决方案:
  修改成正确的头文件进行链接(导入)。然后在编译就没问题了。

注意事项:

  像这种问题,感觉一般会出现想我这样修改代码库结构(变更库文件)的情况下,或者更改部分库文件目录(路径)或者名称时会出现;说实话,当时出现时也是直接蒙了,按理说这些库我都用了很久了,怎么就出问题了呢。然后仔细分析了下错误描述,才发现原来是自己链接头文件搞错了。
  这里做个笔记,以避免以后遇见类似的问题,同时也和各位共享下,以备日后遇到类似问题时,提供一种排查思路。

笔记跟新记录

时间 内容
2020-11-08 创建笔记

【编译器问题】“fatal error LNK1169: 找到一个或多个多重定义的符号“ 解决方案相关推荐

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

    fatal error LNK1169: 找到一个或多个多重定义的符号 "fatal error LNK1169: 找到一个或多个多重定义的符号"解决方法_u014552288的专 ...

  2. fatal error LNK1169: 找到一个或多个多重定义的符号 的解决方案

    昨天,尝试一个项目,遇到了如下的问题.先来还原一下: 头文件test.h #pragma once #include <Eigen/Core> #include <iostream& ...

  3. C++报错:fatal error LNK1169: 找到一个或多个多重定义的符号

    一.概述   使用visual studio编写C++代码时,为了书写规范与标准,往往需要创建多个源文件与头文件(并且源文件中需要包含相关头文件),这不仅能锻炼你的模块化思维,还能及时定位是哪一个模块 ...

  4. fatal error LNK1169: 找到一个或多个多重定义的符号的 解决办法

    项目 –> 属性 –> 链接器 –> 命令行 –> 附加选项中 加 /force 虽然会有好多warning,但是能运行,没有大碍.

  5. 【转载】“error LNK1169: 找到一个或多个多重定义的符号”的解决方法

    c++的小细节的地方 原文地址:https://blog.csdn.net/xiaosu123/article/details/5665729 问题描述如下: 有 三个源文件,A.h.B.cpp.C. ...

  6. “error LNK1169: 找到一个或多个多重定义的符号”的解决方法

    问题描述如下: 有 三个源文件,A.h.B.cpp.C.cpp. A.h是头文件,其中声明了三个变量a1.a2. a3. B.cpp是A.h中所声明的类的实现源代码,C.cpp是主程序文件.B.cpp ...

  7. LNK2005 _main 已经在 test0208.obj 中定义 / LNK1169 找到一个或多个多重定义的符号

    ** 错误 LNK2005 _main 已经在 test0208.obj 中定义 错误 LNK1169 找到一个或多个多重定义的符号 当我们遇到这个问题的时候先不要慌张,如果是英文报错先把翻译成中文, ...

  8. error LNK2005: “找到一个或多个多重定义的符号” 已经在 xxxx.obj 中定义 的解决方法

    error LNK2005: "找到一个或多个多重定义的符号" 已经在 xxxx.obj 中定义 的解决方法 参考文章: (1)error LNK2005: "找到一个或 ...

  9. LNK1169 找到一个或多个多重定义的符号

    LNK1169    找到一个或多个多重定义的符号 就是函数名重复了.

最新文章

  1. java fragment_Java Web Fragment在项目中使用方法详解
  2. linux下如何判断oracle数据库tns是否设置正常
  3. 过期时间_2020年最新航空里程过期时间及避免过期方法总结
  4. 为什么将表格的method改为post后就无法工作_用Python将Keras深度学习模型部署为Web应用程序...
  5. day23 内置函数,匿名函数,递归
  6. JDBC batch批处理Statement executeBatch 具体解释
  7. Django-admin源码流程
  8. HDD + HDD(SSD) 多硬盘系统启动问题
  9. MapXtreme 随笔记录1
  10. 百度云网盘高速通道加速破解版 去广告纯净版干净云
  11. 基于SSM的网上购物商城管理系统
  12. 汇丰银行借沟通CTBS远程管理帐务
  13. 《网络攻防》实验九:web安全基础实践
  14. 机器学习之MATLAB代码--基于VMD与SSA优化lssvm的功率预测(多变量)(七)
  15. 解决开发板不兼容earpods问题
  16. CSS3 3D转换和旋转木马案例
  17. python3-excel数据填充
  18. 基于美团Leaf-Segment的双buffer方案实现序列号生成器
  19. Humanoid动画显示与Generic不一致
  20. python分析北京租房现状,最后的价格分布地图亮了

热门文章

  1. java的byte和C#的byte的不同之处
  2. html表格数据垂直居中显示,html如何设置表格单元格内容垂直居中?
  3. DJANGO 页面跳转 URL 使用详解( URL 跳转到指定页面)
  4. php小刀教程网源码,小刀网站自动收录源码
  5. JDBC,JdbcTemplate,JPA,Hibernate之间的关系概述
  6. 工作汇报怎么写?学会这几招,教你快速升职加薪!
  7. Twaver-HTML5基础学习(34)Link显示流动效果
  8. windows下修改hosts文件不需要重启也能生效。
  9. abb机器人示教器io信号关联_ABB机器人 IO基本操作和接线练习
  10. ios状态栏变黑问题解决