下面的程序将文本文件从windows格式转换为POSIX格式(这意味着将回车序列-换行符转换为换行符)
local inp = assert(io.open(arg[1], "rb"))
local out = assert(io.open(arg[2], "wb"))
local data = inp:read("a")
data = string.gsub(data, "\r\n", "\n")
out:write(data)
assert(out:close
我刚刚安装了CygWin和curl,因为我想做一些无关的事情。但是现在,我希望在.lua中执行CygWin文件,并希望在当前窗口CygWin窗口上打印结果。我希望它就像打开CMD,然后做cd <directory where the file is>一样。然后做<filename>.lua,然后打印结果。那我该怎么做呢?对不起,我对Linux、Unix、CLI等还不太熟悉,而且我对bash命令不太了解。
我试着在这里使用这个方法:,我刚刚做了./<filename>.lua,我得到了
./<filename>.lua: line 1: synta
好日子,我真的花了几乎所有午后时间在Centos 7上安装lua5.3 。我主要找到了安装Lua5.1的信息,但我们确实需要5.2或5.3版本。
如果我找到5.3的信息,那不是Centos的信息。
到目前为止,我能做的最好的就是从lua网站下载源代码版本,但我仍然无法安装它。
以下是我的步骤,也许你可以帮我继续
curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz
tar zxf lua-5.3.4.tar.gz
cd lua-5.3.4
make linux test
问题是,从那时起,我如何安装它。
我试过了
make
和
make linu
我正在寻找每个实际需要运行lua脚本所需的库,该脚本需要火炬库。
test.lua
#!/usr/bin/env lua
print "Welcome to LUA"
print('_VERSION = ' .. _VERSION)
require("nn") -- this loads torch nn libraries to be further used in the code
print "Load pass"
输出
Welcome to LUA
_VERSION = Lua 5.1
Load pass
当我用
lld
当我尝试构建我的项目时,我得到了错误undefined reference to 'luaL_newstate'。我知道这是链接器的一个错误,但我对Lua和向项目添加库都是比较陌生的。顺便说一句,我使用Code::块。接口函数luaL_openlibs、luaL_loadfile、lua_pcall、lua_getfield、lua_type、lua_settop也丢失。
我在一个网站上看到,为了解决这个问题,我必须将我的项目与libdl链接起来,但我真的不知道这意味着什么以及如何做到这一点。
我在nodejs代码中有一个很大的异步函数集合,我希望将它们公开给lua。基本的想法是,我想要执行lua脚本,并允许这些脚本回调我的一些nodejs代码,以及从执行的lua脚本异步返回一个值。
在本例中,myCustomNodejsAddon是我编写的一个自定义插件,它知道如何绑定lua并运行lua脚本。一个悬而未决的问题是如何从lua脚本异步返回值?
以前有没有人做过这样的事情?我会非常感兴趣的任何指针,想法,例子。
使用更好的示例进行编辑:
-- user written lua script
getUser(1, function(err, user)
if err then
因为我的游戏--我真的很想使用Mono-可用--似乎没有在Linux下运行,因为LuaInterface是个混蛋(关于这个问题的更多信息,请看 ),所以我决定做这里建议的事情。我编写了自己的Lua511.LuaDLL类来反映LuaInterface使用的类,将每个公共函数替换为各自来自lua51的DllImport:
//For example, like this:
[DllImport("lua51")]
public static extern IntPtr luaL_newstate();
使用已编辑的LuaInterface.dll (它现在承载了自己的Lua511.
假设我在一个文件夹中有两个文件test.lua和m.lua,在test.lua中为: require("m") 然后我运行这个文件,但是它引发了一个错误: lua: /Users/xx/works/scripts/test.lua:43: module 'm' not found:
no field package.preload['m']
no file '/usr/local/share/lua/5.3/m.lua'
no file '/usr/local/share/lua/5.3/m/in
我找了又试了好几天。问题是:
我写了一个加载共享库locker.so的脚本,它在lua解释器上运行得很好,但我不能写出正确的主机程序。
我的lua脚本load_so.lua非常简单:
locker = require("locker")
print(type(locker))
for k, v in pairs(locker) do
print(k, v)
end
我的主机程序是:
int main(int argc, const char *argv[])
{
lua_State * L = luaL_newstate();
luaL_openlibs
我在编译一个项目时遇到了麻烦,主要是链接对象。链接者抱怨:
$ g++ -o bin/program obj/linux64/Debug/src/main.o [... more object files ...] ../../../addons/obj/linux64/Debug/ofxLua/libs/lua/lua/lapi.o [...many other object files and libraries...]
../../../addons/obj/linux64/Debug/ofxLua/libs/luabind/src/scope.o: In function `~lua