17

我试图#include创建一个具有某些功能的cpp文件,以便以后可以将该 cpp 文件用于其他项目。它给了我一个“已经在 .obj 中定义”的错误,从那时起,那个 .cpp 文件就好像与我的项目绑定了一样。(我明白这不是办法,这里的答案帮助我解决了已经定义的问题)

如果我从项目中排除.cpp 文件,请将其从目录中删除删除#include它仍在查找的行:

c1xx : fatal error C1083: Cannot open source file: 'std.cpp': No such file or directory

诊断:

Outputs for D:\MY DOCUMENTS\C#\PROJECT\D3DTESTC++\COWS AND BULLS\CBMAIN.CPP|D:\MY DOCUMENTS\C#\PROJECT\D3DTESTC++\COWS AND BULLS\STD.CPP: (TaskId:15)

它根本不应该寻找std.cpp,我删除了它!那么有没有办法可以重置项目并重新编译,以便程序不查找它?我已经尝试过重建清除 -> 构建项目

4

15 回答 15

15

当我遇到 VS Express 的类似问题时,我不得不打开 .vcxproj 文件(这只是 XML),并删除有问题的 < ClInclude Include="FILEPATHANDNAME" > 标签。

于 2014-04-11T04:14:27.960 回答
12

好的,我不知道我是怎么做到的,但我仍然会尝试写我所做的。

  1. 全部保存关闭解决方案
  2. 打开.vcxproj文件(不是 .sln)
  3. 构建->清理 [项目名称]
  4. 全部保存关闭
  5. 再次打开.sln文件。
  6. 构建->仅项目->仅清理 [项目名称]
  7. 构建->仅项目->仅构建 [项目名称]

这正是我所做的和为我工作的。我认为主要要做的是清理、保存、关闭、打开、构建,但我不确定。

于 2013-05-07T21:29:30.913 回答
11

这里的许多解决方案都不起作用

全防方法:

  1. 在文本编辑器中打开给您带来麻烦的 vxproj 文件。
  2. 删除对它找不到的文件的所有引用。
于 2017-12-05T01:46:32.373 回答
8

在解决方案资源管理器中,您可以选择/取消选择“显示所有文件”选项。尝试这两个选项并确保排除的文件不包含在它们的项目中。

这就是我所拥有的:我使用了“显示所有文件”选项(这样你就可以看到项目目录中的所有文件)。我从项目中排除了我的 .cpp 文件之一。但是,它的行为就像这个文件在项目中一样。

这就是我设法修复它的方法:我关闭了“显示所有文件”,看到这个文件仍然属于项目!所以我再次排除了这个文件。

如我所见,这是一个已知问题。

这对我有用,希望对其他人有用。

于 2013-11-28T14:16:33.870 回答
3

尝试详细的生成器输出以查看正在发生的事情的确切步骤。我想,你使用 Visual Studio,对吧?

  1. 转到菜单“工具 -> 选项”
  2. 在选项对话框中,选择“Projects and Solutions -> Build and Run”
  3. 将“MSBuild 项目构建输出详细程度”的当前模式从“最小”更改为“诊断”或“详细”。
  4. 重建您的项目并调查输出窗口

生成器转储应该更清楚地说明您当前的设置(我怀疑您对该文件的引用比您预期的要多)

于 2013-05-07T19:25:41.203 回答
3

这发生在我身上,因为我从 IDE 内部重命名了文件夹。上述解决方案均无效。解决此问题的唯一方法是在记事本中打开 vcproj,您应该会在<ItemGroup>. 只需删除这些行。

于 2016-10-22T02:11:13.677 回答
2

我有同样的问题,但我有另一个 .sln 工作正常。在使用 Project->Properties-> 工具使它们看起来相同之后,没有任何效果。我打开了两个 .vcxproj 文件并将工作版本的内容复制到我的非工作版本中。(我注意到这两个文件的长度不同。非工作版本长了大约 20 行。)我只是将 RootNameSpace 更改为非工作版本的名称。我保存了非工作文件并保存!有效。

于 2017-10-11T03:56:36.330 回答
2

当我重命名一个文件时,我发现我必须转到 SolutionExplorer,Source File,选择该文件,首先从 Project 中排除,然后将其重新添加到项目中,然后重建它所在的解决方案。它仍然显示为我的源文件下的旧文件名。

于 2016-10-07T14:35:11.570 回答
2

或者有时,就像我的情况一样,问题只是该位置中文件夹的命名。我的文件夹路径很长,我喜欢用特殊字符命名,因此它们显示在顶部并且很容易访问它们。一旦我将解决方案放在 D: 驱动器中的文件夹中,问题就消失了。

于 2016-03-24T10:57:28.590 回答
1

对于遇到与“错误 C1083:无法打开源文件”相关的问题的人:

错误是由 *.vcxproj 文件中的设置引起的。可能您通过文件资源管理器删除/移动了源文件,而不是通过 Visual Studio 的“解决方案资源管理器”。因此,您的 *.vcxproj 文件已损坏。修复是手动更正 *.vcxproj 文件中的设置。

Visual Studio 设置文件的工作原理

Visual Studio 将解决方案的信息保存到文件中。此文件通常位于项目的解决方案目录中,扩展名为 .sln,基本名称与解决方案名称相同,f.ex.:

NameOfSolution.sln

同样,项目的信息保存在一个文件中(每个项目都有自己的文件)。此文件的基本名称是项目名称,扩展名是 .vcxproj,通常位于名为您的项目 f.ex. 的子目录中:

NameOf1stProject/NameOf1stProject.vcxproj

NameOf2ndProject/NameOf2ndProject.vcxproj

*.sln 和 *.vcxproj 文件都是文本文件。您可以使用记事本打开它们。

如何解决问题

  1. 查找负责您的项目的 *.vcxproj 文件。

    如果您不知道它在哪里,请在记事本中打开解决方案的 *.sln 文件。搜索您的解决方案的名称。你会发现这样的行:

    Project("{9AA9CEB8-8B4A-11D0-8D22-00B0C01AA943}") = "NameOf1stProject", "NameOf1stProject\NameOf1stProject.vcxproj", "{A8735D0A-25ED-4285-AB8F-AF578D8DB960}"
    

    NameOf1stProject\NameOf1stProject.vcxproj ”下的值是您项目的 *.vcxproj 文件的位置。

  2. 通过文本编辑器(例如记事本)打开找到的 *.vcxproj 文件。

  3. 搜索您正在努力使用的文件名所在的行。

    示例:如果您正在寻找“ RemovedFile.cpp ”,那么您应该找到以下行:

    <ClCompile Include="RemovedFile.cpp" />
    
  4. 删除该行。

  5. 如果您打开了 Visual Studio,它会询问您是否应该刷新解决方案 - 选择是。如果它没有打开 - 只需开始使用它。

  6. 如果出现任何问题,请尝试重建解决方案(顶部横幅 ->构建->重建解决方案

在我的情况下,它起作用了。尝试修复 30 分钟,修复不到 1 分钟。

于 2018-05-24T15:24:37.420 回答
1

我从 Project 中删除了这些来源并重新添加了它们。不知何故,在匆忙的项目重构之后,引用搞砸了。

于 2017-04-26T13:01:08.637 回答
1

我遇到了同样的问题,但对我来说,问题是我使用 Windows 上的 Bash (WSL) 来克隆存储库,然后使用 VS 进行编译。

一旦我删除了我的克隆并使用 Windows 命令行 (cmd.exe) 克隆了存储库,错误 1083 就消失了。

于 2019-01-21T18:53:51.160 回答
1

对我有帮助。总而言之,我的项目路径太长了,所以我把我的项目移到了更短的地方D:\my_project,即一切都在眨眼之间完成。

于 2018-05-12T12:02:25.607 回答
0

这是由于未正确删除/删除文件造成的。转到解决方案资源管理器,选择您的解决方案,在左角,激活图标:显示所有文件。(如果您已经删除了问题文件,请从回收站恢复)选择问题文件,从解决方案资源管理器中删除和删除,您应该不会遇到此问题。并记住从现在开始以正确的方式进行。这是在 MS 2010 上

于 2020-10-07T18:41:54.197 回答
0

如果您的项目目录中有该文件但仍然出现错误,请在您的 IDE 上转到解决方案资源管理器->删除该文件->然后在文件资源管理器中打开项目目录->选择该文件并将其删除在 IDE 解决方案资源管理器中的特定位置。我是这样修的。我使用Windows平台。

于 2022-01-18T11:45:17.907 回答