当我运行emconfigure ./configure时出现以下错误:
ERROR:root:Exception thrown when invoking Popen in configure with
args: "./configure"!
Traceback (most recent call last):
File "/usr/local/bin/emconfigure", line 13, in <module>
emconfigure.run()
File "/usr/local/Cellar/emscripten/1.37.21/libexec/emconfigure.py", line 46, in run
shared.Building.configure(sys.argv[1:])
File "/usr/local/Cellar/emscripten/1.37.21/libexec/tools/shared.py", line 1533, in configure
process = Popen(args, stdout=None if EM_BUILD_VERBOSE_LEVEL >= 2 else stdout, stderr=None if EM_BUILD_VERBOSE_LEVEL >= 1 else stderr, env=env)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
答案 0 :(得分:1)
由于调用堆栈的深度,这个跟踪可能很棘手。让我们分开吧:
在“下一个顶级”:找不到您尝试执行的文件。
低于事情变得清晰的一个级别:subprocess.Popen正在尝试执行args。
args中有什么? - 基本上./configure(由emscripten传递)。导出EM_BUILD_VERBOSE = 3环境变量,然后stderr应该显示它。
因此,下一个顶级./configure以无效的方式指导事物。现在是时候猜测在顶层(不知道./configure脚本中有什么):是./configure脚本文件本身的shell命令的某一行试图执行非存在的?例如:#之后的某个点! / bin / sh? - 尝试调试只是 ./compile。
值得注意的是,子进程可能会遇到相对路径(没有获取PATH)和权限(./configure被锁定)的问题,但即使在/ you / make / an /之后,您的错误也可能会持续存在绝对/调用/配置和 777配置权限。 - 在这种情况下,前一段是最有可能的罪魁祸首。
这个错误作为emscripten的一个常见问题很有意思的原因是emscripten的部分(很多)存在的理由是将[遗留] C / ++代码移植到新的JS应用程序中。好吧,旧的C / ++构建在这个问题的意义上变得老了 。如果这是真的,这将是一个普遍存在的问题,并且,如果它是一般的,社区可以使用一般模式来解决。
答案 1 :(得分:0)
如果您使用的是Docker,那么您的主机就是Windows,并将其安装到Windows目录中,请确保您的文件不是\r\n
行结尾,而是{{1}行结尾。改变它为我修好了。
在这种情况下,如果您正在使用git,则可以尝试设置\n
以停止结帐git config core.autocrlf input
。如果您需要转换文件,请尝试this answer out。