Compiler construction 编译程序时Lua崩溃
我正在做一个非常非常简单的Lua程序,试图自学这门语言。以下是三行程序:Compiler construction 编译程序时Lua崩溃,compiler-construction,lua,luac,Compiler Construction,Lua,Luac,我正在做一个非常非常简单的Lua程序,试图自学这门语言。以下是三行程序: file = io.open("hello.txt", "w") file:write("Hello, World.\n") io.close(file) 当我使用Lua作为脚本的程序时,它工作得很好。当我编译程序时,它工作正常。但是,当我运行编译后的程序时,我得到以下结果: 我正在奔腾4上使用WindowsXP上的Lua5.1.2。我卸载了Lua并重新安装了它,但没有效果。我将按照如下方式编译脚本: luac -o h
file = io.open("hello.txt", "w")
file:write("Hello, World.\n")
io.close(file)
当我使用Lua作为脚本的程序时,它工作得很好。当我编译程序时,它工作正常。但是,当我运行编译后的程序时,我得到以下结果:
我正在奔腾4上使用WindowsXP上的Lua5.1.2。我卸载了Lua并重新安装了它,但没有效果。我将按照如下方式编译脚本:
luac -o hello.exe hello.lua
是我做错了什么,还是这是一个已知的错误?我希望能够编写Lua程序,在没有安装Lua的计算机上运行。帮助谢谢 luac不编译为系统exe文件。它所做的只是将lua脚本转换成lua字节码。您仍然需要将结果文件传递给lua才能执行 因此,从操作系统的角度来看,exe文件包含垃圾。当exe文件不包含有效的exe头时,操作系统出于某种原因决定它必须是旧式dos.com文件,并尝试使用16位dos子系统执行它。因此出现了奇怪的错误消息 如果您想用编译的lua生成exe,则需要使用不同的环境(可能是visual studio)来生成一个小项目,该项目使用嵌入式lualib加载并执行lua文件(编译的或脚本)
关于Stackoverflow,有一些关于如何进行的技巧。luac不会编译成系统exe文件。它所做的只是将lua脚本转换成lua字节码。您仍然需要将结果文件传递给lua才能执行 因此,从操作系统的角度来看,exe文件包含垃圾。当exe文件不包含有效的exe头时,操作系统出于某种原因决定它必须是旧式dos.com文件,并尝试使用16位dos子系统执行它。因此出现了奇怪的错误消息 如果您想用编译的lua生成exe,则需要使用不同的环境(可能是visual studio)来生成一个小项目,该项目使用嵌入式lualib加载并执行lua文件(编译的或脚本)
Stackoverflow上有一些关于如何进行的技巧。看起来您正在尝试为16位系统编译。检查编译器标志?看起来您正在尝试为16位系统编译。检查编译器标志?谢谢。我想应该这样。谢谢。我认为应该这样做。