在Windows 7上通过CreateProcess但命令行启动时,make命令失败

时间:2014-05-31 07:01:15

标签: cmd makefile 64-bit windows-7-x64 32-bit

我目睹了Windows 7上make.exe的这种奇怪行为。

如果我直接从命令行启动" make -j8 some-component-name", 命令确实成功了。

如果我使用CreateProcess(.......)继承从C程序启动它 来自父母的所有环境等,我看到它失败了以下 错误讯息:

make [4]:*** create_child_process:DuplicateHandle(In)失败(e = 6)。 停止。

这是我迄今为止所尝试的内容 - 无论如何它们都没有帮助。

  1. 通过CreateProcess()32位和64位cmd.exe 试图启动make命令。
  2. 将C程序构建为32位和64位。
  3. 尝试过CreateProcess(" c:\ windows \ system32 \ cmd.exe"," / C make -j8 some-component-name",..)
  4. 尝试过CreateProcess(NULL," c:\ windows \ system32 \ cmd.exe / C make -j8 some-component-name",..)
  5. 尝试过CreateProcess(NULL," cmd.exe / C make -j8 some-component-name", ..)
  6. 虽然不确定他们是否可以解决问题但我还没有尝试过的事情:

    1. 使用ShellExecute()代替CreateProcess()。
    2. 顺便说一句,make实用程序来自GNU make包。我尝试过使用 两个版本的make 3.81和2.something.something。我也确定了 只有一个make.exe可以在命令提示符下运行。

      那么,关于事情出错的任何想法?

      感谢。

      更新1:好像其他人遇到的几乎一样 - Android ndk-build error make.exe: *** create_child_process: DuplicateHandle(In) failed (e=6)

      我将在那里尝试解决方案并进一步提供更新。

      更新2:当我使用CreateProcess()时,我仍然很好奇为什么它会有所不同。 所以,我还在想。任何答案?我现在还没试过建议的解决方案。

0 个答案:

没有答案