Lua在Windows中的编译构建(build.cmd)

我尝试按照这个问题所建议的方法进行安装(在Windows 10上使用Torch运行Lua(受限管理员权限)),使用了build.cmd文件。这是结果:

mingw32-make: *** 未指定目标并找不到 makefile。 停止。

**** 编译终止 ****

**** 构建二进制分布 ****

系统找不到指定的路径。 系统找不到指定的路径。 系统找不到指定的路径。 系统找不到指定的路径。 系统找不到指定的路径。 系统找不到指定的路径。 系统找不到指定的路径。 系统找不到指定的路径。

**** 二进制分发已构建 ****

“C:\gcc-lua-install\lua\bin\lua.exe”不是内部或外部命令,也不是可运行的程序或批处理文件。

按任意键继续. . .

它在这一行上失败:

mingw32-make PLAT=mingw

这一行做了什么? 我认为它会“制作”它,但是从教程中看不出此时有makefile。

    @echo off
    :: ========================
    :: file build.cmd
    :: ========================
    setlocal
    :: you may change the following variable's value
    :: to suit the downloaded version
    set lua_version=5.3.4

    set work_dir=%~dp0
    :: Removes trailing backslash
    :: to enhance readability in the following steps
    set work_dir=%work_dir:~0,-1%

    set lua_install_dir=%work_dir%\lua
    set compiler_bin_dir=%work_dir%\tdm-gcc\bin
    set lua_build_dir=%work_dir%\lua-%lua_version%
    set path=%compiler_bin_dir%;%path%

    cd /D %lua_build_dir%
    mingw32-make PLAT=mingw

    echo.
    echo **** 编译终止 ****
    echo.
    echo **** 构建二进制分布 ****
    echo.

    :: create a clean "binary" installation
    mkdir %lua_install_dir%
    mkdir %lua_install_dir%\doc
    mkdir %lua_install_dir%\bin
    mkdir %lua_install_dir%\include

    copy %lua_build_dir%\doc\*.* %lua_install_dir%\doc\*.*
    copy %lua_build_dir%\src\*.exe %lua_install_dir%\bin\*.*
    copy %lua_build_dir%\src\*.dll %lua_install_dir%\bin\*.*
    copy %lua_build_dir%\src\luaconf.h %lua_install_dir%\include\*.*
    copy %lua_build_dir%\src\lua.h %lua_install_dir%\include\*.*
    copy %lua_build_dir%\src\lualib.h %lua_install_dir%\include\*.*
    copy %lua_build_dir%\src\lauxlib.h %lua_install_dir%\include\*.*
    copy %lua_build_dir%\src\lua.hpp %lua_install_dir%\include\*.*

    echo.
    echo **** 二进制分发已构建 ****
    echo.

    %lua_install_dir%\bin\lua.exe -e"print [[Hello!]];print[[Simple Lua test successful!!!]]"

    echo.

    pause

build.cmd似乎是: 1)创建一些目录变量。 2)使用mingw32-make构建makefile(缺失) 3)创建文件结构。 4)将文件放置在文件结构中。

我不理解的是mingw32-make这一行。

点赞
用户2858170
用户2858170

假设您已经正确地按照教程进行操作,并且已将 Lua 源文件放在了它们应该放置的位置,那么您无需指定文件名。 mingw32-make将使用在您以前的行中选择为起始目录的源文件夹中的文件 Makefile

PLAT=mingw 定义要使用的平台。在这种情况下,由于您使用 mingw32,所以这是 mingw。你会在 Makefile 中发现它。

在 GNU make 文档中:

指定 Makefile 的参数

指定 Makefile 名称的方法是使用 -f--file 选项 (--makefile 也可以工作)。例如, -f altmake 表示要使用文件 altmake 作为 Makefile。

如果您多次使用 -f 标志,并将每个 -f 与一个参数一起使用,则所有指定的文件都联合使用作为 Makefile。

如果您不使用 -f--file 标志,则会尝试 依次使用 GNUmakefile,makefile 和 Makefile,使用可以找到的或可以制作的 这三个中的第一个默认 Makefile

如果我必须进行猜测,我会说您可能在设置工作目录时犯了一个错误,或者您从错误的目录运行了 build.cmd。遵循逐步教程就可以避免这两种情况。

2018-03-10 21:29:28
用户10082995
用户10082995

重新从这里下载 lua https://www.lua.org/download.html

使用 WinRAR 直接将其解压到目录中

将版本号重命名为下载的版本号

将文本文件保存为 UTF-8 build.cmd

运行它。

2018-07-15 04:40:41