【问题标题】:nsinstall: Bad file number error on Vistansinstall:Vista 上的错误文件编号错误
【发布时间】:2009-08-29 21:06:36
【问题描述】:

我正在尝试在我的 Windows Vista Ultimate 机器上构建 Firefox。我不断收到以下错误:

nsinstall:错误的文件号

我听说这个错误是由于 Vista 中的 UAC 引起的。这是导致我得出这个结论的两篇文章。 https://wiki.mozilla.org/Penelope_Developer_Page#Windows_Vistahttp://www.kevinbrosnan.net/mozilla-build-error-nsinstall-bad-file-number

使用标准的“以管理员身份运行”,我试图重做我的构建,但我得到了完全相同的错误。我还以管理员身份启动了一个普通的命令提示符,然后转到 mozilla-build (start-msvc8.bat) 中的批处理文件并运行它。仍然在同一点出现同样的错误。

关于如何解决此错误或其他原因导致该错误的任何其他见解?

注意:我也posted something here 希望获得特定主题的帮助,但我没有听到任何消息……在我发布后,我在nsinstall 上找到了信息。无论如何,我更喜欢 SO 所以我想我会在这里尝试......

更新:我已尝试完全禁用 UAC 以纠正 cnemelkasr 建议的问题。我收到了完全相同的错误。这种新知识让我认为缺少文件或文件夹......有 NSInstall 经验的人知道给定的错误 - 错误的文件编号 - 可能意味着什么?我想它可能是指一个文件句柄...

【问题讨论】:

    标签: uac windows-vista


    【解决方案1】:

    如果确实是 UAC 错误,您可以尝试完全关闭 UAC。我不得不为几个包做这个。网络上有很多地方可以获取执行此操作的说明。

    http://www.petri.co.il/disable_uac_in_windows_vista.htm 就是其中之一。

    【讨论】:

    • 所以,正如您从我上面的更新中看到的那样,我尝试了这个,但它没有帮助。如果您有其他建议,我愿意接受...
    【解决方案2】:

    我找到了我的问题的答案。我在这里发布答案是为了与其他人分享答案并结束这个问题。

    禁用 UAC 后,提示目录深度干扰 NSInstall。我将文件夹从c:/Users/Frank/Documents/hg-repos/firefox-src-hgRepo/mozilla-fv-expirement/ 移动到C:/mozilla-fv-expirement/。清理了所有以前的构建尝试,最后重新构建了我的构建(关闭 UAC),我收到了一个工作调试二进制文件。

    建议发布于:mozilla.dev.builds

    【讨论】:

      【解决方案3】:

      "Bad file number" 消息在我看到的情况下,是由传递给execvp (command, argv)(或类似)函数的参数过多引起的。但仅来自 一些 程序。 PATH 中的旧 bashsh 或 Borland/Watcom 程序可能是候选者。

      因此,当您缩短构建目录的名称时,命令行的总大小(最终传递给CreateProcess())会变短。我认为 UAC 与此无关,因为我在 Win-XP 上也看到过。但是 Mozilla 在构建时不会使用相对路径有点奇怪。我猜它在它的 makefile 中使用了一些目录 prefix 值(我从未尝试过构建它)。

      如果您查看_execvp() 的文档:
      http://msdn.microsoft.com/en-us/library/3xw6zy53.aspx

      E2BIG 是可能的 errno 值之一:
      参数和环境设置所需的空间超过 32 KB。

      现在,奇怪的部分来了。

      事实 1:
      在 Visual-C/MingW(任何版本)上,strerror(EBADF) 不会返回 "Bad file number" 。 (它返回“错误的文件描述符”)。

      事实 2:
      在 Borland 的 CBuilder 5.6 和 Watcom 1.9(它们使用 MSVC 运行时)上,strerror(EBADF) 确实返回“错误文件号”

      理论:
      Borland、Watcom(以及其他 CRT 也有可能?)混淆了 E2BIGEBADF 的含义。这有什么意义吗?如果您有更好的理论,请有人纠正我。 我自己也有点糊涂……

      结论
      要么缩短环境的大小(最简单),要么缩短命令行(并不总是那么容易)。

      --gv

      【讨论】:

        猜你喜欢
        • 2011-09-10
        • 2014-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-15
        • 1970-01-01
        相关资源
        最近更新 更多