C C 語言呼叫lua函式和編譯問題

2021-08-09 00:15:37 字數 1385 閱讀 5747

lua安裝版本:lua 5.2

lua安裝系統:ubuntu 16.04

網上找到**開始進行測試c/c++ linux環境下呼叫lua指令碼,各種錯。網上給出的也是貼上複製,沒有對自己的問題進行剖析。神煩!!!!

reacher@ubuntu:~/luafunc$ g++ -o add main.cpp -i /usr/include/lua5.2/

main.cpp: in function 『int main(int, char**)』:

main.cpp:24:18: error: 『lua_open』 was not declared in this scope

l = lua_open();

^

錯誤剖析:一直以為是路徑問題,造成沒有引用。後來多個網友貼出來的錯誤,發現是5.2已經棄lua_open()。

readline-devel:sudo apt-get install libreadline-dev  

ncurses-devel: sudo apt-get install libncurses5-dev

錯誤剖析:將缺失的依賴安裝上

reacher@ubuntu:~/luafunc$ g++ -o add main.cpp -i /usr/include/lua5.2/

/tmp/ccybxbqi.o: in function `main':

main.cpp:(.text+0x10): undefined reference to `lual_newstate'

main.cpp:(.text+0x20): undefined reference to `lual_openlibs'

main.cpp:(.text+0x36): undefined reference to `lual_loadfilex'

main.cpp:(.text+0x61): undefined reference to `lua_pcallk'

main.cpp:(.text+0x70): undefined reference to `lua_close'

collect2: error: ld returned 1 exit status

g++  -o add main.cpp -i /usr/include/lua5.2/ -llua5.2

工作用工頭搭建好的環境就是爽,自己來搭建各種坑和各種迷失。所以做程式設計師這個行當還是要多動手和練習。

解決問題的思路:

1.先看報錯提示,根據報錯提示進行查詢解決方案。

2.多總結,不要只停留在錯誤提示上。

3.結合網友在這個問題上的解決思路,看一下異同,在反看自己的錯誤

C C 呼叫 Lua 函式(非全域性函式)

c c 呼叫 lua 函式有兩種 1,lua 指令碼裡,沒有local 修飾的函式,即為全域性函式 2,lua 指令碼裡,有local 修飾的函式,即為區域性函式 其實呼叫函式和取lua裡的變數是一樣的,網上講得最多的是呼叫全域性函式,這裡主要講呼叫非全域性函式 或是變數 如有指令碼 test.lu...

Lua函式的呼叫( 和 的呼叫區別)

本人稍加修改。lua中類的函式定義方式有三種方法 定義方式 tab.func function 引數 body end function tab.func 引數 body end function tab func 引數 body end其中,兩種定義方式與普通函式的定義一樣。方式 採用 來定義,實...

C C 如何給快速呼叫Lua中定義的函式

要想在c中呼叫lua中的函式,按照之前方法,需要先找到函式所在的位置。於是我們需要呼叫 lua getglobal這個函式,而實際上lua getglobal這個函式又是如何找到name所在的位置呢?我們先看這個函式的實現 lua api int lua getglobal lua state l,...