【编译器问题】“fatal error LNK1169: 找到一个或多个多重定义的符号“ 解决方案
文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。
笔记资料仅供学习交流使用,转载请标明出处,谢谢配合。
如果存在相关知识点的遗漏,可以在评论区留言,看到后将在第一时间更新。
作者: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: 找到一个或多个多重定义的符号“ 解决方案相关推荐
- fatal error LNK1169: 找到一个或多个多重定义的符号
fatal error LNK1169: 找到一个或多个多重定义的符号 "fatal error LNK1169: 找到一个或多个多重定义的符号"解决方法_u014552288的专 ...
- fatal error LNK1169: 找到一个或多个多重定义的符号 的解决方案
昨天,尝试一个项目,遇到了如下的问题.先来还原一下: 头文件test.h #pragma once #include <Eigen/Core> #include <iostream& ...
- C++报错:fatal error LNK1169: 找到一个或多个多重定义的符号
一.概述 使用visual studio编写C++代码时,为了书写规范与标准,往往需要创建多个源文件与头文件(并且源文件中需要包含相关头文件),这不仅能锻炼你的模块化思维,还能及时定位是哪一个模块 ...
- fatal error LNK1169: 找到一个或多个多重定义的符号的 解决办法
项目 –> 属性 –> 链接器 –> 命令行 –> 附加选项中 加 /force 虽然会有好多warning,但是能运行,没有大碍.
- 【转载】“error LNK1169: 找到一个或多个多重定义的符号”的解决方法
c++的小细节的地方 原文地址:https://blog.csdn.net/xiaosu123/article/details/5665729 问题描述如下: 有 三个源文件,A.h.B.cpp.C. ...
- “error LNK1169: 找到一个或多个多重定义的符号”的解决方法
问题描述如下: 有 三个源文件,A.h.B.cpp.C.cpp. A.h是头文件,其中声明了三个变量a1.a2. a3. B.cpp是A.h中所声明的类的实现源代码,C.cpp是主程序文件.B.cpp ...
- LNK2005 _main 已经在 test0208.obj 中定义 / LNK1169 找到一个或多个多重定义的符号
** 错误 LNK2005 _main 已经在 test0208.obj 中定义 错误 LNK1169 找到一个或多个多重定义的符号 当我们遇到这个问题的时候先不要慌张,如果是英文报错先把翻译成中文, ...
- error LNK2005: “找到一个或多个多重定义的符号” 已经在 xxxx.obj 中定义 的解决方法
error LNK2005: "找到一个或多个多重定义的符号" 已经在 xxxx.obj 中定义 的解决方法 参考文章: (1)error LNK2005: "找到一个或 ...
- LNK1169 找到一个或多个多重定义的符号
LNK1169 找到一个或多个多重定义的符号 就是函数名重复了.
最新文章
- java fragment_Java Web Fragment在项目中使用方法详解
- linux下如何判断oracle数据库tns是否设置正常
- 过期时间_2020年最新航空里程过期时间及避免过期方法总结
- 为什么将表格的method改为post后就无法工作_用Python将Keras深度学习模型部署为Web应用程序...
- day23 内置函数,匿名函数,递归
- JDBC batch批处理Statement executeBatch 具体解释
- Django-admin源码流程
- HDD + HDD(SSD) 多硬盘系统启动问题
- MapXtreme 随笔记录1
- 百度云网盘高速通道加速破解版 去广告纯净版干净云
- 基于SSM的网上购物商城管理系统
- 汇丰银行借沟通CTBS远程管理帐务
- 《网络攻防》实验九:web安全基础实践
- 机器学习之MATLAB代码--基于VMD与SSA优化lssvm的功率预测(多变量)(七)
- 解决开发板不兼容earpods问题
- CSS3 3D转换和旋转木马案例
- python3-excel数据填充
- 基于美团Leaf-Segment的双buffer方案实现序列号生成器
- Humanoid动画显示与Generic不一致
- python分析北京租房现状,最后的价格分布地图亮了
热门文章
- java的byte和C#的byte的不同之处
- html表格数据垂直居中显示,html如何设置表格单元格内容垂直居中?
- DJANGO 页面跳转 URL 使用详解( URL 跳转到指定页面)
- php小刀教程网源码,小刀网站自动收录源码
- JDBC,JdbcTemplate,JPA,Hibernate之间的关系概述
- 工作汇报怎么写?学会这几招,教你快速升职加薪!
- Twaver-HTML5基础学习(34)Link显示流动效果
- windows下修改hosts文件不需要重启也能生效。
- abb机器人示教器io信号关联_ABB机器人 IO基本操作和接线练习
- ios状态栏变黑问题解决