【问题标题】:Error when compiling Qt: nmake fatal error U1077编译Qt时出错:nmake fatal error U1077
【发布时间】:2012-05-08 12:43:38
【问题描述】:

我正在尝试编译 Qt 4.7.4,但我总是收到此错误:

mt.exe: general error c101008d: Failed to write the updated manifest to the resource of file "release\tutorial5.exe". The system cannot find the file specified. 
NMAKE : fatal error U1077: '"C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe"' : return code '0x1f'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop. 
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop. 
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

我使用 Visual Studio 命令提示符执行了以下命令:

configure -debug-and-release -opensource -platform win32-msvc2010
nmake

我可以做些什么来解决这个错误?

【问题讨论】:

  • 这个问题又出现在我的 Qt 5.3.1 中

标签: c++ visual-studio-2010 qt compiler-errors nmake


【解决方案1】:

显然 tutorial5.exe 无法正确或完全构建,并且永远不会创建该 exe。 Mt.exe 是用于generating signed files and catalogs 的Windows 后期构建工具。它返回一个错误,因为它找不到文件。

您的问题的解决方案包括从您的构建中排除演示和教程,或者在教程 5 的源代码中查找错误,以便正确构建。或者,您甚至可以在其中放置一个虚拟版本的 tutorial5.exe,看看这是否是唯一出现的错误。

源代码中的错误可能与 Windows 中 Qt 的默认编译器工具 (MingW) 和 msvs2010 编译器之间的差异以及它们尝试处理某些 Windows 特定代码的方式有关。

构建Qt时如何排除示例

其他在线有类似项目的人已使用标志“sub-src”从 nmake 构建调用中排除了示例。

tutorial5.exe是什么

这是release/tutorial5.exe 在 Qt 的默认构建中的位置:

C:\QtSDK\Examples\4.7\qtestlib\tutorial5

它在文档中:Qt 4.8: Chapter 5: Writing a Benchmark

您可能应该向 Qt 项目提交描述问题的票证:bugreports.qt.io

祝你好运。

【讨论】:

    【解决方案2】:

    尝试以管理员身份运行 Microsoft Visual Studio 命令提示符。当您进入魅力面板并搜索 MSVS 提示时,右键单击并以管理员身份运行。

    【讨论】:

      【解决方案3】:

      在 Windows 7 64 位上使用 Qt 4.8.1、Creator 2.7.1、MSVC2010 Express 的 Qt 控制台应用程序出现类似错误:

      "mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file ... " 
      

      然后是一些事情

      The process cannot access the file because it is being used by another process.
      

      但是,应用程序已构建,然后可以从 Creator 中“运行”。 该错误也发生在“构建”中,即不是“运行”。 我最初认为这可能是一个时间问题,例如创建者正在启动 shell 以过早地运行程序。 删除文件后一切正常(无错误)。

      也许我的 GIT(或 TortoiseGIT)正在访问该文件,尽管我看不到这些进程。

      编辑:它也可能是检查正在写入的文件的病毒扫描程序。 Edit2:确认:暂时禁用扫描仪可以解决问题

      【讨论】:

      • 我可以确认 Panda Cloud Antivirus(至少当前版本 2.2.0)对我造成了这样的问题。
      猜你喜欢
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-13
      • 1970-01-01
      • 2020-04-04
      相关资源
      最近更新 更多