簡體   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