关于lua中文教程上C API第一个lua与c交互示例程序编译 整理
2013-06-24 20:44
666 查看
示例代码如下,在ubuntu下如何编译通过
1.安装readline和ncurses,这是为安装lua做准备
去 http://www.sfr-fresh.com/unix/misc/readline-6.1.tar.gz,下载readline, 然后解压tar -zxvf readline-6.1.tar.gz
进入解压目录cd readline-6.1
执行命令 ./configure && make && make install (可能会没有权限,sudo su切换到root下执行) 和 sudo ldconfig
去 http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz,下载ncurses, 然后解压 tar -xvf ncurses-5.7.tar.gz
然后cd ncurses-5.7
执命令./configure && make && make install (和上面一样,没有权限则到root下)和sudo ldconfig
2.下载安装lua 去这下载http://www.lua.org/ftp/lua-5.1.4.tar.gz,解压,进入目录,输入出命令make linux
然后sudo make install OK了,环境搭好了。
3.编译上面的示例代码,代码文件为。test.c吧
进入test.c所在目录,输入 cc -o test test.c -llua -lm -ldl进行编译。会发现有错误。
原因是少了一个strlen的头文件,#include <string.h>和示例中代码是lua5.0环境的。
可做如下修改
再次编译可以成功了。
#include <stdio.h> #include <lua.h> #include <lauxlib.h> #include <lualib.h> int main (void) { char buff[256]; int error; lua_State *L = lua_open(); /* opens Lua */ luaopen_base(L); /* opens the basic library */ luaopen_table(L); /* opens the table library */ luaopen_io(L); /* opens the I/O library */ luaopen_string(L); /* opens the string lib. */ luaopen_math(L); /* opens the math lib. */ while (fgets(buff, sizeof(buff), stdin) != NULL) { error = luaL_loadbuffer(L, buff, strlen(buff), "line") || lua_pcall(L, 0, 0, 0); if (error) { fprintf(stderr, "%s", lua_tostring(L, -1)); lua_pop(L, 1);/* pop error message from the stack */ } } lua_close(L); return 0; }
1.安装readline和ncurses,这是为安装lua做准备
去 http://www.sfr-fresh.com/unix/misc/readline-6.1.tar.gz,下载readline, 然后解压tar -zxvf readline-6.1.tar.gz
进入解压目录cd readline-6.1
执行命令 ./configure && make && make install (可能会没有权限,sudo su切换到root下执行) 和 sudo ldconfig
去 http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz,下载ncurses, 然后解压 tar -xvf ncurses-5.7.tar.gz
然后cd ncurses-5.7
执命令./configure && make && make install (和上面一样,没有权限则到root下)和sudo ldconfig
2.下载安装lua 去这下载http://www.lua.org/ftp/lua-5.1.4.tar.gz,解压,进入目录,输入出命令make linux
然后sudo make install OK了,环境搭好了。
3.编译上面的示例代码,代码文件为。test.c吧
进入test.c所在目录,输入 cc -o test test.c -llua -lm -ldl进行编译。会发现有错误。
原因是少了一个strlen的头文件,#include <string.h>和示例中代码是lua5.0环境的。
可做如下修改
#include <stdio.h> #include <string.h> #include <lua.h> #include <lauxlib.h> #include <lualib.h> #include <string.h> int main (void) { char buff[256]; int error; printf("begin\n"); lua_State *L = lua_open(); /* opens Lua */ luaL_openlibs(L);////这里 while (fgets(buff, sizeof(buff), stdin) != NULL) { error = luaL_loadbuffer(L, buff, strlen(buff), "line") || lua_pcall(L, 0, 0, 0); if (error) { fprintf(stderr, "%s", lua_tostring(L, -1)); lua_pop(L, 1);/* pop error message from the stack */ } } lua_close(L); printf("end\n"); return 0; }
再次编译可以成功了。
相关文章推荐
- 示例程序代码Tictactoe@GTK+ 2.0 中文教程连载
- 示例程序代码GtkDial@GTK+ 2.0 中文教程连载
- 编译原理学习周入门教程--(9)编译程序第一个工作阶段-词法分析(NFA和DFA转换) .
- 示例程序代码Scribble@GTK+ 2.0 中文教程连载
- 编译 Hello World 程序@GTK+ 2.0 中文教程连载
- 关于编译android程序,期待模拟器,中文路径的问题【转载】
- 编译原理学习周入门教程--(7)编译程序第一个工作阶段-词法分析(正规式)
- 第一个示例程序FreakOut编译问题
- 编译原理学习周入门教程--(8)编译程序第一个工作阶段-词法分析(有穷自动机)
- Lua和C交互的第一个程序
- Lua:编译安装LuaJIT,第一个Lua程序
- WCF教程系列(1)-创建第一个WCF程序
- 关于字符编码,中文所占字节的整理。
- Expression Blend实例中文教程(6) - 项目控件和用户交互控件快速入门
- Expression Blend实例中文教程(6) - 项目控件和用户交互控件快速入门
- 关于VS2017编译linux程序时,错误提示信息太简单,看不出错误原因的解决办法
- VS2015中编译lua.lib并运行lua程序,版本lua5.3.4
- cocos IDE 编译lua 游戏程序的环境配置
- JavaSE第一讲:JavaSE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行
- 【Scikit-Learn 中文文档】寻求帮助 - 关于科学数据处理的统计学习教程 - scikit-learn 教程 | ApacheCN