linux下C调用lua的第一个程序
生活随笔
收集整理的這篇文章主要介紹了
linux下C调用lua的第一个程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
linux下C調用lua的第一個程序
linux的環境是Fedora 18,運行在VM workstation中,以開發模式安裝,自帶了lua 5.1.4,可以在命令行上直接用lua命令進入到lua環境中。 寫第一個lua程序,C語言程序??? //add.c
??? #include??????? <stdio.h>
??? #include??????? "lua.h"
??? #include??????? "lualib.h"
??? #include??????? "lauxlib.h"
??? /*the lua interpreter*/
??? lua_State* L;
??? int
??? luaadd(int x, int y)
??? {
??? int sum;
??? /*the function name*/
??? lua_getglobal(L,"add");
??? /*the first argument*/
??? lua_pushnumber(L, x);
??? /*the second argument*/
??? lua_pushnumber(L, y);
??? /*call the function with 2 arguments, return 1 result.*/
??? lua_call(L, 2, 1);
??? /*get the result.*/
??? sum = (int)lua_tonumber(L, -1);
??? /*cleanup the return*/
??? lua_pop(L,1);
??? return sum;
??? }
??? int
??? main(int argc, char *argv[])
??? {
??? int sum;
??? /*initialize Lua*/
??? L = lua_open();
??? /*load Lua base libraries*/
??? luaL_openlibs(L);
??? /*load the script*/
??? luaL_dofile(L, "add.lua");
??? /*call the add function*/
??? sum = luaadd(10, 15);
??? /*print the result*/
??? printf("The sum is %d \n",sum);
??? /*cleanup Lua*/
??? lua_close(L);
??? return 0;
??? }
??? lua的代碼:
??? function add(x,y)
??? return x + y
??? end
??? 使用GCC編譯,告找不到文件lua.h!
??? 需要手動安裝lua
??? 1、lua5.1.4需要使用readline,下載文件readline-6.2.tar.gz,使用命令:tar -zxvf readline-6.1.tar.gz 解包。
??? 2、進入目錄,生成make文件:./configure ,編譯: make,安裝: make install
??? 3、原文說還需要ncurses,因為以前這個包裝過,所以這次沒有。
??? 4、下載并解包文件lua-5.1.4.tar.gz:tar -xzvf? lua-5.1.4.tar.gz
??? 5、進入目錄lua-5.1.4,編譯:make linux,安裝:make install
??? 成功后將lua和lua.h文件都安裝好了,但lua的安裝位置和以前fedora自帶的位置是不一樣的,這次安裝在了/usr/local/bin下了,不過不影響使用。
??? 然后再次編譯,試過不需要那么復雜的命令,實際上只需要:gcc -lm add.c -o add /usr/local/lib/liblua.a -ldl
??? 還是給個全的命令吧:gcc -I/usr/local/include/ -L/usr/local/lib/ -lm add.c -o add /usr/local/lib/liblua.a -ldl
總結
以上是生活随笔為你收集整理的linux下C调用lua的第一个程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入理解javascript原型链
- 下一篇: android 根据滑动隐藏或显示导航