`
messi_18
  • 浏览: 96905 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SUSE 环境,c 调用 lua

    博客分类:
  • lua
 
阅读更多
现在开始配置c调用lua的环境。
先写一个简单的lua脚本test.lua:
print 'hello world'


再写一个c程序call_lua.c[1]:
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
#include <stdio.h>
int main() {
        lua_State *L;
        L = luaL_newstate();
        luaL_openlibs(L);
        luaL_loadfile(L, "../lua/test.lua");
        lua_pcall(L,0,0,0);
        lua_close(L);

        return 0;
}


接下来编译call_lua.c
gcc -o call_lua call_lua.c -I/usr/include -llua

为什么这么写呢?我来解释:
看到那些头文件了吗?lua.h,lauxlib.h,lualib.h。你们在哪啊?
敲如下命令:
locate /lua.h
这样你就得到结果:
/usr/include/lua.h
/usr/include/lua.hpp
这就是-I/usr/include的来历。
那-llua呢?
敲如下命令:[2]
locate liblua
得到如下结果:
/usr/lib64/liblua.a
/usr/lib64/liblua.so
/usr/lib64/liblua.so.5.1
/var/cache/zypper/RPMS/liblua5_1-5.1.4-6.2.x86_64.rpm
-l相当于lib,所以-llua相当于liblua

至此编译成功。运行下试试吧。
hello world



参考了:
1.http://www.troubleshooters.com/codecorn/lua/lua_c_calls_lua.htm
2.http://forums.opensuse.org/archives/sf-archives/archives-miscellaneous/311442-locate-command-not-working.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics