从昨天开始,我一直在尝试安装 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 的配置变量”,而在它的正下方,是 lua.vm.js 的 Makefile 调用的代码行来查找某些变量。如此处所示:
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 编译器可能不存在于我的系统上,这既奇怪又令人困惑。