国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

linux下lua安裝以及和c的交互

2019-11-08 01:38:59
字體:
來源:轉載
供稿:網友

lua安裝,與c交互的過程記錄

lua安裝 在此我的機器環境是cenos 6.8 我安裝的是lua5.1.4版本

安裝lua編譯的相關依賴 yum -y install readline-devel ncurses-devel tar -zxvf lua-5.1.4.tar.gz cd lua-5.1.4 make linux test make install

至此lua模塊安裝完成,開始和c語言的交互之旅行吧

網上很多介紹c和lua交互的,但是在linux下面的編譯介紹卻沒找到,在此自己記錄下,也方便大家查看

在lua模塊安裝完成后,可以用命令find / -name ‘lua.h’ 查看lua.h的位置,網上很多人是用–PRofix指定位置,在此我都是默認安裝,發現默認其實已經是在/usr/local/bin 等系統目錄下,沒有其他配置,可直接使用,很方便。不需要像很多人說的那樣多此一舉,每次總是百度來百度去反而消磨很多精力。

1實現自己的第一個c調用C的例子 test.lua

print("lua script test.lua have been load--")function showinfo() print ("hello world")endfunction lua_add(a,b) return a+bendfunction lua2c_add(a,b) return add(a,b)end

test.c

#include <stdio.h>#include <lua.h>#include <lauxlib.h>#include <lualib.h>int main(int argc, char *argv[]){ lua_State *L = lua_open(); L = luaL_newstate(); luaL_openlibs(L); luaL_dofile(L, "test.lua"); lua_getglobal(L,"showinfo"); lua_pcall(L,0,0,0); lua_getglobal(L,"lua_add"); lua_pushinteger(L,1); lua_pushinteger(L,5); lua_pcall(L,2,1,0); printf("lua add function return val is %d /n",lua_tointeger(L,-1)); lua_close(L); return 0;}編譯命令 gcc test.c -o test -llua -lm -ldl 這里寫圖片描述

2實現自己的第一個lua調用C的例子 c_lua.c

#include<stdio.h>#include<lua.h>#include<lualib.h>#include<lauxlib.h>static int add(lua_State* L){ int a = lua_tointeger(L,1);//獲取函數參數 int b = lua_tointeger(L,2); lua_pushinteger(L,a+b); return 1;}int main(){ lua_State *L = luaL_newstate(); //lua_State *L = Lua_open() luaL_openlibs(L); lua_register(L,"add",add);//注冊add函數,多個函數可以使用luaL_register注冊,該函數使用結構體的方式 luaL_dofile(L,"test.lua");//加載lua文件,建立lua所有變量(包括函數)的全局表 lua_getglobal(L,"lua2c_add");// 在lua的全局表查找lua2c_add函數,并壓入棧底 lua_pushinteger(L,3);//push函數參數1 lua_pushinteger(L,4);//push 函數參數2 lua_pcall(L,2,1,0);//執行棧中的函數,2代表倆個參數,1代表一個返回值,0代表沒有錯誤處理函數 int result = lua_tointeger(L,-1); //從棧中取回返回值 lua_pop(L,1); //清棧,此時只有一個返回值 printf("result = %d/n",result); lua_close(L);//關閉lua環境 return 0;}編譯命令 gcc c_lua.c -o app -llua -lm -ldl 這里寫圖片描述

Ok啦,經歷好幾天的迷霧,終于在linux跑起來了,還不太會寫博客,就此小小記錄下,也希望能帶給一些和我一樣有迷惑的朋友幫助


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永定县| 云阳县| 临桂县| 颍上县| 德兴市| 宜昌市| 浦北县| 封开县| 井研县| 察隅县| 永泰县| 丰台区| 沙雅县| 通化县| 霍州市| 搜索| 天祝| 合肥市| 锦屏县| 西华县| 郴州市| 旌德县| 广丰县| 大宁县| 渭南市| 民和| 海晏县| 察雅县| 桃源县| 兰西县| 利津县| 聊城市| 华容县| 太康县| 略阳县| 安仁县| 肥西县| 井研县| 崇礼县| 图片| 资中县|