1

我在 VS 2010 中收到 LNK2019 和 LNK2001 错误,但在 g++ 中没有。我四处寻找原因,但一切都在谈论确保包含正确的标题、正确定义的功能等。

进入项目目录并打开 .vcxproj 文件后,我看到了这个列表:

   <ItemGroup>
        <ClCompile Include="main.cpp" />
        <ClCompile Include="pilElem3.cpp" />
        ... many lines ...
        <ClCompile Include="utlMatrixFull.cpp" />
        <ClCompile Include="utlVector.cpp" />
    </ItemGroup>
    <ItemGroup>
        <ClInclude Include="pilElem3.h" />
        ... many lines ...
        <ClInclude Include="utlMatrixFull.h" />
        <ClInclude Include="utlVector.h" />
    </ItemGroup>
    <ItemGroup>
        <None Include="pilElement.cpp" />
    </ItemGroup>

pilElement 是具有链接器错误的 pilElem3 和 pilElem4 的父类。
自创建以来,我没有更改任何过滤器或更改项目。
a) 为什么 VS 认为这个文件应该被忽略?
b) 我怎么能早点注意到这一点?

4

1 回答 1

1

回答我如何怀疑您可能无意中右键单击了项目资源管理器中的文件-在 VS 中很容易做到这一点。

如何确保它不会在未来发生,您有 2 个选项 a) 不要使用 Visual Studio 或 b) 使用修订控制系统,例如 Mercurial,并将项目文件包含在您正在控制的文件中 - 并定期提交- 如果需要,您将能够恢复对项目文件的更改,并且当您不希望它发生更改时,您应该注意它是否在更改的文件列表中。

于 2013-07-30T18:47:00.970 回答