VS 2010 错误 - 无法打开文件“iostream”

Posted

技术标签:

【中文标题】VS 2010 错误 - 无法打开文件“iostream”【英文标题】:VS 2010 error - cannot open file "iostream" 【发布时间】:2011-06-03 10:01:37 【问题描述】:

我刚从VS2005迁移到VS2010,编译一个简单的程序失败了。

#include <iostream>
using std::cout;
using std::endl;

int main()

    cout << "Hello Visual Studio 2010 :)" << endl;

错误 -

1  error TRK0005: Failed to locate: "CL.exe". The system cannot find the file specified.
2  IntelliSense: cannot open source file "iostream"
3  IntelliSense: name followed by '::' must be a class or namespace name
4  IntelliSense: name followed by '::' must be a class or namespace name
5  IntelliSense: identifier "cout" is undefined
6  IntelliSense: identifier "endl" is undefined

PS:我对使用 VS2010 完全陌生,但对 VS 2005 有经验。

这是我在“用户属性表”下从 VS2005 添加到 VS2010 的目录列表

可执行文件 -

$(VCInstallDir)bin; $(VSInstallDir)Common7\Tools\bin; $(VSInstallDir)Common7\tools; $(VSInstallDir)Common7\ide; $(VSInstallDir); $(VSInstallDir)\SDK\v2.0\bin

包括 -

$(VCInstallDir)include; $(VCInstallDir)atlmfc\include; $(FrameworkSDKDir)include

库 -

$(VCInstallDir)lib; $(VCInstallDir)atlmfc\lib; $(VCInstallDir)atlmfc\lib\i386; $(FrameworkSDKDir)lib; $(VSInstallDir); $(VSInstallDir)lib

来源 -

$(VCInstallDir)atlmfc\src\mfc; $(VCInstallDir)atlmfc\src\mfcm; $(VCInstallDir)atlmfc\src\atl; $(VCInstallDir)crt\src

【问题讨论】:

你包含路径是否包含默认头文件的文件路径? 是的,CL 是链接器。如果你的编译器找不到它是混乱的。这确实使这更像是一个系统管理员 (Serverfault.com) 问题,而不是一个编程 (SO) 问题。 @T.E.D.: 不,CL.exe 是 Visual Studio 中的编译器,链接器名为 LINK.exe 恕我直言,SLaks 的评论怎么会有 11 个赞?这完全没有帮助。 【参考方案1】:

我不知道为什么会这样,但我收到了这个错误,安装 Visual Studio Power Commands 为我解决了这个问题。此扩展添加了配置属性 -> VC++ 目录,允许您直接修改 ExecutableDirectories 宏,它可能与此有关。

【讨论】:

【参考方案2】:

我遇到了同样的问题,通过搜索找到了这个页面,但我不太了解 Ralf 关于用户属性表的答案,并且没有重新安装。我认为 Ralf 的回答对我有用,但我正在查看当您在解决方案资源管理器中右键单击项目并选择“属性”时出现的“属性页面”对话框。没想到跟“物业经理”不一样。

所以,我在 msdn 论坛上询问并得到了an answer 和a nice explanation of property sheets。对我有用的解决方案是在文本编辑器中编辑用户属性表并删除所有路径,将其留空,如下所示:

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

</Project>

用户属性表是Microsoft.Cpp.Win32.user.props&lt;localappdata&gt;\microsoft\msbuild\v4.0 其中&lt;localappdata&gt; 是 Win7下c:\users\&lt;username&gt;\appdata\local

【讨论】:

【参考方案3】:

我在几台不同的机器上遇到了同样的问题,这些机器已经安装了其他版本的 VS(2005、2008)。我最终也得到了各种奇怪的错误。

我发现以下技巧对我有用,也许它也适用于您的情况: - 打开一个新的VS2010实例 - 使用 def 设置创建新的控制台应用程序。 - 尝试编译:应该有一些错误 - 打开“物业管理器” - 调出项目的 Microsoft.Cpp.Win32.user 属性表 - 单击 VC++ 目录 - 单击“可执行目录”字段。那应该显示一个下拉菜单,单击下拉菜单并选择“编辑”。您应该会看到一堆继承的值,这些值应该包含与上面列出的目录类似的所有必需目录。取消选中“从父级或项目默认值继承”选项。重新检查并单击“确定”。 - 对包含、库目录等重复此操作。 -点击“应用”和“确定” - 重建项目并检查它是否有效。

我只需要这样做一次。关闭 VS 并创建一个新项目后,我就可以编译了。在我发现这一点之前,我手动删除了所有继承的值并添加了所有 VS 和 SDK 目录的绝对路径。这也行得通,但工作量要大得多。

【讨论】:

很好的答案 Ralf... 从错误中我们可以看出,这里的主要问题是,Visual Studio 没有在属性页中定义的可执行目录列表中找到编译器文件。确保选中“从父级或项目默认值继承”选项后,确保 $(ExecutablePath) 显示在“可执行目录”字段的末尾。这就是你真正需要的。如果您修改每个文件的单独项目设置,您还需要确保为该项目添加了 $(ExecutablePath)。 这对我有用!我会为此苦恼好几个星期!谢谢!【参考方案4】:

系统找不到 Visual C++ 编译器 (CL.exe)...

你应该尝试的事情:

重新运行 Visual Studio 2010 安装程序并确保您选择为您的平台(x86 或 amd64)安装 Visual C++ 工具。

在修复模式下运行安装程序。

如果这不能解决您的问题:

尝试运行Visual Studio 2010 Uninstall Utility (by Microsoft),然后再次尝试安装VS 2010。

【讨论】:

以上是关于VS 2010 错误 - 无法打开文件“iostream”的主要内容,如果未能解决你的问题,请参考以下文章

用VS2010编C程序,出现:无法打开包括文件:“stdio.h”: No such file or directory

VS2010 打开时出现未知错误

VS2010中调试程序是错误:fatal error C1083: 无法打开包括文件:“thread”

在vs2010编译qt程序时就会出现错误无法打开文件"Qt5Cored.lib"

VS2010 编译OGRE最后出现无法打开All_Build

VS2008 编译时出现的错误:无法打开编译器中间文件。如何解决?