visual studio 编译C++ 出现LNK2005 :YY 已经在XX.obj中被定义的一种原因
一般出现这种是重复定义了变量或函数。这种坑只需检查头文件和CPP文件,以及用#ifndef 或#pragma once就可解决,不再赘述。还有一种情况是这样的:
main.cpp里使用了
<include xx.cpp>
,xx.cpp里的申明放在yy.h里面并
<include yy.h>
,同时项目里面有xx.cpp,也会出现这样的错误。原因是项目里面xx.cpp会被编译,main.cpp再include一次,就造成重复。解决办法很简单,不要include xx.cpp,include yy.h 就行了
当在Visual Studio中编译C++项目时遇到LNK2005错误,通常是因为变量或函数的重复定义。这可能源于头文件包含不当或缺少防止重复包含的保护。一种常见场景是main.cpp直接包含了xx.cpp,而项目中又有xx.cpp源文件,导致编译两次。解决方法是仅包含对应的头文件(yy.h),避免直接包含cpp文件。
1万+

被折叠的 条评论
为什么被折叠?



