我有一个简单的lua源代码hello.lua
print('Hello Lua')
我在RedHat Linux机器上使用Lua5.3.4将这个文件编译成字节码,如下所示:
luac -o hello.luac hello.lua chmod +x hello.luac ./hello.luac bash: ./hello.luac: cannot execute binary file
我想这个架构应该没问题。 我不知道什么是错的。
预编译的Lua程序的运行方式与源代码完全相同:
lua hello.luac
正如@lhf在他的回答中所述,Lua字节码是使用Lua解释器执行的,正如手册所示:
为了允许在Unix系统中使用Lua作为脚本解释器,独立解释器在以#开头的情况下跳过块的第一行。 因此,可以使用
chmod +x
和#!
来使Lua脚本变成可执行程序#!
形成。
添加一个shebang作为脚本的第一行:
#!/usr/bin/env lua print('Hello Lua')