繁体   English   中英

lua.vm.js 构建失败(make (e=2): 系统找不到指定的文件。)

[英]lua.vm.js is failing to build (make (e=2): The system cannot find the file specified.)

从昨天开始,我一直在尝试安装 lua.vm.js 来使用它。 我在这里和那里遇到了一些路障,但到目前为止,我不知道如何解决这个问题。 我一直在尝试做的就是真正地构建它,仅此而已。 我从这个 GitHub 页面获得了文件,我只是想按照说明进行操作。 但是我收到这条错误消息,至少对我来说,它没有意义,而且我不知道如何找到解决方案。

    C:\lua.vm.js-master\lua>make emscripten
    cd src && make emscripten
    process_begin: CreateProcess(NULL, em-config EMCC, ...) failed.
    process_begin: CreateProcess(NULL, em-config EMAR, ...) failed.
    process_begin: CreateProcess(NULL, em-config EMRANLIB, ...) failed.
    make[1]: Entering directory `C:/lua.vm.js-master/lua/src'
    make ../../dist/lua.vm.js \
                    CC="" \
                    AR=" rcu" \
                    RANLIB="" \
                    SYSLDFLAGS="-Os \
                            -s INVOKE_RUN=0 \
                            -s NO_EXIT_RUNTIME=1 \
                            -s TOTAL_MEMORY=134217728 \
                            -s RESERVED_FUNCTION_POINTERS=8 \
                            --memory-init-file 0 \
                            --post-js ../../src/lua.js \
                            --embed-file ../../src/js.lua@js.lua \
                            "
    make[2]: Entering directory `C:/lua.vm.js-master/lua/src'
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lapi.o lapi.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lapi.o lapi.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lapi.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lcode.o lcode.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lcode.o lcode.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lcode.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lctype.o lctype.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lctype.o lctype.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lctype.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o ldebug.o ldebug.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o ldebug.o ldebug.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [ldebug.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o ldo.o ldo.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o ldo.o ldo.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [ldo.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o ldump.o ldump.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o ldump.o ldump.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [ldump.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lfunc.o lfunc.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lfunc.o lfunc.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lfunc.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lgc.o lgc.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lgc.o lgc.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lgc.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o llex.o llex.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o llex.o llex.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [llex.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lmem.o lmem.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lmem.o lmem.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lmem.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lobject.o lobject.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lobject.o lobject.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lobject.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lopcodes.o lopcodes.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lopcodes.o lopcodes.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lopcodes.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lparser.o lparser.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lparser.o lparser.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lparser.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lstate.o lstate.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lstate.o lstate.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lstate.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lstring.o lstring.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lstring.o lstring.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lstring.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o ltable.o ltable.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o ltable.o ltable.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [ltable.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o ltm.o ltm.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o ltm.o ltm.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [ltm.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lundump.o lundump.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lundump.o lundump.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lundump.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lvm.o lvm.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lvm.o lvm.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lvm.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lzio.o lzio.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lzio.o lzio.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lzio.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lauxlib.o lauxlib.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lauxlib.o lauxlib.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lauxlib.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lbaselib.o lbaselib.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lbaselib.o lbaselib.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lbaselib.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lbitlib.o lbitlib.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lbitlib.o lbitlib.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lbitlib.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lcorolib.o lcorolib.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lcorolib.o lcorolib.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lcorolib.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o ldblib.o ldblib.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o ldblib.o ldblib.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [ldblib.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o liolib.o liolib.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o liolib.o liolib.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [liolib.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lmathlib.o lmathlib.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lmathlib.o lmathlib.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lmathlib.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o loslib.o loslib.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o loslib.o loslib.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [loslib.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o lstrlib.o lstrlib.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o lstrlib.o lstrlib.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [lstrlib.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o ltablib.o ltablib.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o ltablib.o ltablib.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [ltablib.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o loadlib.o loadlib.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o loadlib.o loadlib.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [loadlib.o] Error 2 (ignored)
    O2 -Wall -DLUA_COMPAT_ALL     -c -o linit.o linit.c
    process_begin: CreateProcess(NULL, O2 -Wall -DLUA_COMPAT_ALL -c -o linit.o linit.c, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: [linit.o] Error 2 (ignored)
    rcu liblua.a lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o loslib.o lstrlib.o ltablib.o loadlib.o linit.o
    process_begin: CreateProcess(NULL, rcu liblua.a lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o loslib.o lstrlib.o ltablib.o loadlib.o linit.o, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[2]: *** [liblua.a] Error 2
    make[2]: Leaving directory `C:/lua.vm.js-master/lua/src'
    make[1]: *** [emscripten] Error 2
    make[1]: Leaving directory `C:/lua.vm.js-master/lua/src'
    make: *** [emscripten] Error 2

我试着寻找其他有类似问题的人,但似乎这个问题是特定于你正在尝试做的事情,所以我无法将我发现的任何东西应用到这个问题上。 我正在使用 gnuwn32 来制作,我没有篡改任何文件。


我会放下更多信息。 makefile 引用的 em-config.py 文件包含以下代码:

"""This is a helper tool which is designed to make it possible
for other apps to read emscripten's configuration variables
in a unified way.  Usage:

  em-config VAR_NAME

This tool prints the value of the variable to stdout if one
is found, or exits with 1 if the variable does not exist.
"""

import sys
import re
from tools import config


def main():
  if len(sys.argv) != 2 or \
    not re.match(r"^[\w\W_][\w\W_\d]*$", sys.argv[1]) or \
    not hasattr(config, sys.argv[1]):
    print('Usage: em-config VAR_NAME', file=sys.stderr)
    exit(1)

  print(getattr(config, sys.argv[1]))
  return 0


if __name__ == '__main__':
  sys.exit(main())

你可以在评论中清楚地看到它的用法,它应该“让其他应用程序以统一的方式读取 emscripten 的配置变量成为可能” 而在它的正下方,代码行 Makefile for lua.vm.js 调用以查找某些变量。 如这里所见:

process_begin: CreateProcess(NULL, em-config EMCC, ...) failed.
process_begin: CreateProcess(NULL, em-config EMAR, ...) failed.
process_begin: CreateProcess(NULL, em-config EMRANLIB, ...) failed.

为什么它仍然拒绝找到合适的文件在这一点上超出了我的范围。 但我有一个线索,Makefile 试图找到的这个 C 编译器可能在我的系统上不存在,这既奇怪又令人困惑。

好吧,从错误开始:

O2 -Wall -DLUA_COMPAT_ALL     -c -o lapi.o lapi.c

此命令试图编译一个 C 文件,但这里没有实际的编译器,它只是选项。 编译器go去哪了? 再往前看:

make ../../dist/lua.vm.js \
                CC="" \

这里我们看到 make 的调用将保存 C 编译器的CC变量设置为空字符串。 为什么会发生这种情况? 我不确定,但在此之前查看这些消息:

process_begin: CreateProcess(NULL, em-config EMCC, ...) failed.

让我怀疑在顶层 makefile 出现了这样的东西:

CC := $(shell em-config EMCC)

它试图调用em-config程序并让它找到 C 编译器,但此命令失败。 如果 makefile 检查这些值不为空并以更易于理解的错误退出,那就太好了。

但是无论如何,似乎由于某种原因找不到或无法执行em-config程序。 这就是我们所能说的。 要么你没有安装什么东西,要么你没有配置什么东西。 这些工具通常是在 Linux 或 MacOS 等 POSIX 系统上开发的; 通常,转换为 Windows 需要一些额外的手动步骤等。我不确定,但我建议您格外仔细阅读可用于在 Windows 上构建的所有说明,并确保所有说明都已成功遵循。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM