使用版本:VS 2022 (其他版本可能会有共通之处?)
有一种可能,是你在向“头文件”中添加.h时,只是命名成了xxx.h,但是它窗口中的选项还是.cpp文件。
我们打开项目的文件夹下的xxx.vcxproj文件和xxx.vcxproj.filters(xxx一般是你的项目名称)比如出现这种情况:
.vcxproj文件中
<ClInclude Include="algofunc.cpp" />
.vcxproj.filters文件中
<ClInclude Include="algoclass.cpp">
<Filter>头文件</Filter>
</ClInclude>
看不懂没关系,你上下观察一下,会发现.cpp文件都应该在
<ClCompile Include="***.cpp">
这种位置,ClInclude和ClCompile的区别
所以仿照其他文件,把仿照改好的东西移到正确的位置(和其他.cpp在同一级目录下,你看其他正常的.cpp文件在哪里,你就仿照着改就行了),就解决问题了
两个文件分别改成(并放到相应位置):
<ClInclude Include="algoclass.h" />
<ClCompile Include="algofunc.cpp">
<Filter>源文件</Filter>
</ClCompile>
即可解决问题。
原理尚不清楚,可能是编译设置上的问题。