项目:错误 PRJ0003:生成 'rc.exe' 时出错

6

1>项目:错误 PRJ0003:无法生成“rc.exe”.. 当我尝试运行这个小的读写文件的练习程序时,我遇到了这个错误,因为我无法正确打开文件。我使用的是 Microsoft Visual C++ 2008,我已经使用文件路径尝试打开文件,但是我还是无法打开。有人能帮忙吗?

#include <iostream>
#include <fstream>
using namespace std;

int main ()
{
  ifstream infile;  
  ofstream myfile;
  int num;
  infile.open("example.txt");
    if(infile.fail())
    {
        cout << "error" << endl;
    }
  myfile.open ("example.txt");
    if(infile.fail())
        {
            cout << "error" << endl;
        }
  while(!infile.eof())
      {
          example >> num;
      }
  while(!myfile.eof())
      {
          example << num;
      }
  infile.close();
  myfile.close();
  return 0;
}

2
你好,欢迎来到SO。你可以通过选中代码并按下Ctrl-K来使其格式化正确。 - mechanical_meat
看起来你的错误不是在运行程序时出现的,而是在编译它时出现的。 - Yuliy
查看您的源代码和生成rc.exe错误,两者不匹配,您还在尝试做什么? 您是否有一个make文件,它在做什么? rc.exe是资源编译器,我没有看到任何与代码相关的资源。 - Romain Hippeau
7个回答

5
臭名昭著的错误原因:Error spawning 'rc.exe'
  • 您刚刚安装了Visual Studio 2008 (VS2008)
  • 然后勤奋地打了补丁,安装了Service Pack 1 (SP1)
  • 结果发现VS环境变量被搞乱了,像$(WindowsSdkDirs)这样的变量没有了。

这是由于服务包没有正确告诉注册表找到安装目录导致的。要解决这个问题,请按照以下步骤:

  • 关闭Visual Studio 2008
  • 开始菜单 > 运行 > 输入Regedit
  • 导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows
  • 添加一个名为CurrentInstallFolder的新字符串值(如果不存在)
  • 将此键设置为值C:\Program Files\Microsoft SDKs\Windows\v6.0A\(或安装到其他位置的路径)

重新启动VS2008,您应该能够成功编译程序了。


3
你的Visual Studio设置有问题,它不应该出现找不到rc.exe并运行的情况。首先要检查文件是否存在。它应该位于c:\program files\microsoft sdks\windows\v6.0a\bin\rc.exe。
接下来要检查路径是否设置正确。依次点击:工具->选项->项目和解决方案->C++目录。右上角:显示目录=可执行文件。验证$(WindowsSdkDirs)\bin是否在列表中。尝试显式添加文件夹名称。如果最后一步起作用,则说明注册表出了问题。稍微绝望一下,重新运行Setup.exe并选择修复。

我找不到这个文件 c:\program files\microsoft sdks\windows\v6.0a\bin\rc.exe。并且它无法打开文件,因为它说我需要声明示例,这是文件名。我应该重新安装Visual C++吗? - user320950
不知道什么是“声明示例”。但是看不到文件是问题的根源。是的,重新安装。 - Hans Passant

1

我知道这已经过时了,但是我通过在安装Windows SDK时检查“工具”选项来修复了相同的错误。这是默认选择的,我已经删除它,以为将使用Visual Studio的工具。

(使用Windows SDK 7.1)


是的,显然在Visual Studio 2008 (msvc-9.0)中,它允许你安装C/C++编译器而不需要实际构建所需的win32工具。 - teeks99

1

也许你的rc.exe在这个路径中找不到:

c:\program files\microsoft sdks\windows\v6.0a\bin\rc.exe

如果这是你的问题,你可以从你朋友的电脑上复制这个应用程序。嘿嘿,..


1

确保“可执行文件”目录之一(可通过“工具->选项->VC++目录”进行编辑)包含RC.exe和RcDll.Dll。

所需的RC.exe很可能放置在“C:\Program Files\Microsoft SDKs\Windows\XXX\Bin”中,其中XXX是不同的版本号。

如果某个Microsoft SDK版本不包含RC.exe,则可以从Microsoft下载最新的版本并将“可执行文件”直接指向新目录,尽量不要使用$(WindowsSdkDir)宏,因为它可能仍然指向旧的sdk目录。


0

在注册表中没有任何需要做的事情,Visual Studio设置中也没有任何需要调整的地方! 在这个问题上,你可能会找到很多误导和错误的答案!

关于这个问题的详细解释可以在下面的链接中找到。 缺失的文件也可以在那里下载。

http://netcult.ch/elmue/Error_spawning_rc.exe.htm


0

我也遇到过这种情况。

从阅读此页面上其他地方的Elmue的答案中,我发现问题是由于我安装了VS2008 + VS2010 + SDK,然后卸载所有内容并手动删除了一些文件夹所致。在非标准文件夹中重新安装VS2008和SDK后,RC.EXE文件根本不存在,安装时混淆了一些注册表条目,其中一些注册表条目指向SDK默认文件夹(而不是我使用的非标准文件夹)。更正注册表条目无效。运行SDK的“修复”安装只是将条目“更正”为再次指向错误的方向,但RC.EXE仍未安装。

最终,我不得不咬下苦果:卸载所有内容并在它们的标准文件夹中重新安装SDK + VS2008。然后它就可以工作了!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接