How can I call Lua scripts from a C program?Calling a Lua script from C: errorsBest way for Lua script to call a C shared lib?lua module is not loading librariesLua error loading module 'libpng' (Torch, MacOSX)parse lua script and connect with C++ codesload lua lib in a c appLua - Reseting the state of a script without reparsing itLua Error Loading Limlib2 Library even though it's already installed?Error with Lua5.3 and LuaL_openlibOpenresty nginx throwing zlib not found error
Avoiding estate tax by giving multiple gifts
What is the best translation for "slot" in the context of multiplayer video games?
A particular customize with green line and letters for subfloat
Fine Tuning of the Universe
How did Arya survive the stabbing?
Would a high gravity rocky planet be guaranteed to have an atmosphere?
Two monoidal structures and copowering
Unreliable Magic - Is it worth it?
Are student evaluations of teaching assistants read by others in the faculty?
How to check is there any negative term in a large list?
Why are there no referendums in the US?
Pole-zeros of a real-valued causal FIR system
How does buying out courses with grant money work?
Is a stroke of luck acceptable after a series of unfavorable events?
Is HostGator storing my password in plaintext?
Is there a good way to store credentials outside of a password manager?
Hostile work environment after whistle-blowing on coworker and our boss. What do I do?
Increase performance creating Mandelbrot set in python
How do we know the LHC results are robust?
How do scammers retract money, while you can’t?
Why not increase contact surface when reentering the atmosphere?
Tiptoe or tiphoof? Adjusting words to better fit fantasy races
Go Pregnant or Go Home
How to safely derail a train during transit?
How can I call Lua scripts from a C program?
Calling a Lua script from C: errorsBest way for Lua script to call a C shared lib?lua module is not loading librariesLua error loading module 'libpng' (Torch, MacOSX)parse lua script and connect with C++ codesload lua lib in a c appLua - Reseting the state of a script without reparsing itLua Error Loading Limlib2 Library even though it's already installed?Error with Lua5.3 and LuaL_openlibOpenresty nginx throwing zlib not found error
I have 2 lua scripts. One require another one. So how can I call it from a C program?
For example:
main.lua
local foo = require "foo"
function main()
foo.bar()
end
main()
foo.lua
function bar( )
io.write("hello, world!n")
end
And this is my C program:
#include <lauxlib.h>
#include <lua.h>
#include <lualib.h>
#include <stdio.h>
#include <stdlib.h>
int main()
int status, result;
lua_State *L;
L = luaL_newstate();
luaL_openlibs(L);
status = luaL_loadfile(L, "main.lua");
if (status)
fprintf(stderr, "Couldn't load file: %sn", lua_tostring(L, -1));
exit(1);
result = lua_pcall(L, 0, LUA_MULTRET, 0);
if (result)
fprintf(stderr, "Failed to run script: %sn", lua_tostring(L, -1));
exit(1);
lua_close(L);
return 0;
It throws a runtime error:
Failed to run script: main.lua:130: module 'foo' not found: no field
package.preload['foo'] no file '/usr/local/share/lua/5.3/foo.lua' no
file '/usr/local/share/lua/5.3/foo/init.lua' no file
'/usr/local/lib/lua/5.3/foo.lua' no file
'/usr/local/lib/lua/5.3/foo/init.lua' no file './foo.lua' no file
'./foo/init.lua' no file '/usr/local/lib/lua/5.3/foo.so' no file
'/usr/local/lib/lua/5.3/loadall.so' no file './foo.so'
I think it is because foo.lua is not loaded into the lua virtual machine, but I can't find API like load files or do files. So what should I do?
c lua
add a comment |
I have 2 lua scripts. One require another one. So how can I call it from a C program?
For example:
main.lua
local foo = require "foo"
function main()
foo.bar()
end
main()
foo.lua
function bar( )
io.write("hello, world!n")
end
And this is my C program:
#include <lauxlib.h>
#include <lua.h>
#include <lualib.h>
#include <stdio.h>
#include <stdlib.h>
int main()
int status, result;
lua_State *L;
L = luaL_newstate();
luaL_openlibs(L);
status = luaL_loadfile(L, "main.lua");
if (status)
fprintf(stderr, "Couldn't load file: %sn", lua_tostring(L, -1));
exit(1);
result = lua_pcall(L, 0, LUA_MULTRET, 0);
if (result)
fprintf(stderr, "Failed to run script: %sn", lua_tostring(L, -1));
exit(1);
lua_close(L);
return 0;
It throws a runtime error:
Failed to run script: main.lua:130: module 'foo' not found: no field
package.preload['foo'] no file '/usr/local/share/lua/5.3/foo.lua' no
file '/usr/local/share/lua/5.3/foo/init.lua' no file
'/usr/local/lib/lua/5.3/foo.lua' no file
'/usr/local/lib/lua/5.3/foo/init.lua' no file './foo.lua' no file
'./foo/init.lua' no file '/usr/local/lib/lua/5.3/foo.so' no file
'/usr/local/lib/lua/5.3/loadall.so' no file './foo.so'
I think it is because foo.lua is not loaded into the lua virtual machine, but I can't find API like load files or do files. So what should I do?
c lua
add a comment |
I have 2 lua scripts. One require another one. So how can I call it from a C program?
For example:
main.lua
local foo = require "foo"
function main()
foo.bar()
end
main()
foo.lua
function bar( )
io.write("hello, world!n")
end
And this is my C program:
#include <lauxlib.h>
#include <lua.h>
#include <lualib.h>
#include <stdio.h>
#include <stdlib.h>
int main()
int status, result;
lua_State *L;
L = luaL_newstate();
luaL_openlibs(L);
status = luaL_loadfile(L, "main.lua");
if (status)
fprintf(stderr, "Couldn't load file: %sn", lua_tostring(L, -1));
exit(1);
result = lua_pcall(L, 0, LUA_MULTRET, 0);
if (result)
fprintf(stderr, "Failed to run script: %sn", lua_tostring(L, -1));
exit(1);
lua_close(L);
return 0;
It throws a runtime error:
Failed to run script: main.lua:130: module 'foo' not found: no field
package.preload['foo'] no file '/usr/local/share/lua/5.3/foo.lua' no
file '/usr/local/share/lua/5.3/foo/init.lua' no file
'/usr/local/lib/lua/5.3/foo.lua' no file
'/usr/local/lib/lua/5.3/foo/init.lua' no file './foo.lua' no file
'./foo/init.lua' no file '/usr/local/lib/lua/5.3/foo.so' no file
'/usr/local/lib/lua/5.3/loadall.so' no file './foo.so'
I think it is because foo.lua is not loaded into the lua virtual machine, but I can't find API like load files or do files. So what should I do?
c lua
I have 2 lua scripts. One require another one. So how can I call it from a C program?
For example:
main.lua
local foo = require "foo"
function main()
foo.bar()
end
main()
foo.lua
function bar( )
io.write("hello, world!n")
end
And this is my C program:
#include <lauxlib.h>
#include <lua.h>
#include <lualib.h>
#include <stdio.h>
#include <stdlib.h>
int main()
int status, result;
lua_State *L;
L = luaL_newstate();
luaL_openlibs(L);
status = luaL_loadfile(L, "main.lua");
if (status)
fprintf(stderr, "Couldn't load file: %sn", lua_tostring(L, -1));
exit(1);
result = lua_pcall(L, 0, LUA_MULTRET, 0);
if (result)
fprintf(stderr, "Failed to run script: %sn", lua_tostring(L, -1));
exit(1);
lua_close(L);
return 0;
It throws a runtime error:
Failed to run script: main.lua:130: module 'foo' not found: no field
package.preload['foo'] no file '/usr/local/share/lua/5.3/foo.lua' no
file '/usr/local/share/lua/5.3/foo/init.lua' no file
'/usr/local/lib/lua/5.3/foo.lua' no file
'/usr/local/lib/lua/5.3/foo/init.lua' no file './foo.lua' no file
'./foo/init.lua' no file '/usr/local/lib/lua/5.3/foo.so' no file
'/usr/local/lib/lua/5.3/loadall.so' no file './foo.so'
I think it is because foo.lua is not loaded into the lua virtual machine, but I can't find API like load files or do files. So what should I do?
c lua
c lua
asked Mar 8 at 11:17
0x119010x11901
798
798
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
It works fine, your foo.lua
is wrong, change it to:
local foo =
function foo.bar()
io.write("Hello World!n")
end
return foo
and it works:
$ ls
foo.lua luabr.c main.lua
BladeMight ~/lua/tests/605
$ gcc luabr.c -llua && ./a
Hello World!
** luabr.c is your C program code.
Thank you very much!
– 0x11901
Mar 8 at 13:35
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55062121%2fhow-can-i-call-lua-scripts-from-a-c-program%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
It works fine, your foo.lua
is wrong, change it to:
local foo =
function foo.bar()
io.write("Hello World!n")
end
return foo
and it works:
$ ls
foo.lua luabr.c main.lua
BladeMight ~/lua/tests/605
$ gcc luabr.c -llua && ./a
Hello World!
** luabr.c is your C program code.
Thank you very much!
– 0x11901
Mar 8 at 13:35
add a comment |
It works fine, your foo.lua
is wrong, change it to:
local foo =
function foo.bar()
io.write("Hello World!n")
end
return foo
and it works:
$ ls
foo.lua luabr.c main.lua
BladeMight ~/lua/tests/605
$ gcc luabr.c -llua && ./a
Hello World!
** luabr.c is your C program code.
Thank you very much!
– 0x11901
Mar 8 at 13:35
add a comment |
It works fine, your foo.lua
is wrong, change it to:
local foo =
function foo.bar()
io.write("Hello World!n")
end
return foo
and it works:
$ ls
foo.lua luabr.c main.lua
BladeMight ~/lua/tests/605
$ gcc luabr.c -llua && ./a
Hello World!
** luabr.c is your C program code.
It works fine, your foo.lua
is wrong, change it to:
local foo =
function foo.bar()
io.write("Hello World!n")
end
return foo
and it works:
$ ls
foo.lua luabr.c main.lua
BladeMight ~/lua/tests/605
$ gcc luabr.c -llua && ./a
Hello World!
** luabr.c is your C program code.
edited Mar 8 at 11:38
answered Mar 8 at 11:32
BladeMightBladeMight
1,5211427
1,5211427
Thank you very much!
– 0x11901
Mar 8 at 13:35
add a comment |
Thank you very much!
– 0x11901
Mar 8 at 13:35
Thank you very much!
– 0x11901
Mar 8 at 13:35
Thank you very much!
– 0x11901
Mar 8 at 13:35
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55062121%2fhow-can-i-call-lua-scripts-from-a-c-program%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown