第乙個c 呼叫Lua程式

2021-07-11 18:06:46 字數 1959 閱讀 5047

main.cpp

#include 

#include

#include

#include

int main()

}lua_close(l);

return

0;}

.pro

config += console

config -= qt

sources += main.cpp

libs += /usr/lib/x86_64-linux-gnu/liblua5.1-c++.so.0

注意,你需要鏈結動態鏈結庫liblua5.1-c++.so.0,windows下可自行查詢需要鏈結的庫

~/workcode/cpp_torch/build $ make

g++-c

-m64

-pipe

-o2-wall

-w-i/usr/share/qt4/mkspecs/linux-g

++-64

-i..

/../cpp_torch -i../

../cpp_torch -i

.-o main.o ../main.cpp

g++-m64

-wl,-o1

-o cpp_torch main.o /usr/lib/x86_64-linux

-gnu/liblua5.1

-c++

.so.0

~/workcode/cpp_torch/build $ ./cpp_torch

require 'torch'

require 'nn'

x = torch.randn(10)

print(x)

-0.5072

-0.6467

1.0296

0.8567

-1.7439

-1.1684

-1.0907

0.4219

-1.0408

-1.7348

[torch.doubletensor of size 10]

net = nn.sequential()

net:add(nn.linear(10,20))

y = net:forward(x)

print(y)

0.0463

0.2011

0.1265

0.1126

0.8329

-0.0219

0.7075

-0.0519

0.0226

0.8394

1.0159

-0.5954

-0.0089

-1.3776

0.4461

-0.3691

0.2173

-0.6644

-0.2885

0.0942

[torch.doubletensor of size 20]

lua.h定義了lua提供得基礎函式,包括建立lua環境、呼叫lua函式,讀寫lua環境中得全域性變數,以及註冊供lua呼叫的新函式等。

lualib.h定義了各種輔助庫提供的函式,它所有得定義都已lual_開頭,比如lual_loadbuffer

lua庫中沒有定義任何全域性變數,它所有的狀態都儲存在動態結構lua_state中,所有的c/c++api,都要求傳入乙個指向該結構的指標

這個程式中,用lual_newstate新建了乙個lua執行環境,然後呼叫lual_loadbuffer來解釋使用者每行輸入的內容,如果正確,返回0,並壓棧,然後呼叫lua_pcall,這個函式會彈棧,並在保護模式中執行,成功也返回0

如果發生錯誤,那麼將錯誤訊息壓棧,用lua_tostring獲取訊息,然後呼叫lua_pop把它從棧中刪除

第乙個Lua程式

2006 10 29 lua測試指令碼 在編寫第乙個lua程式之前,我們先編寫乙個.lua指令碼以供呼叫,如下 test.lua test.lua print hello lua 其中,兩個連續的減號意味著這是一行注釋。我們期望執行這個.lua指令碼的結果是在螢幕上列印一串 hello lua 的字...

編寫第乙個lua程式

今天從 拿到lua 5.1的原始碼後,先將其編譯為靜態庫lua.lib。我用vs 2008建立的工程 extern c lua直譯器指標 lua state l int main int argc,char argv 編譯該 後執行的結果為 panic unprotected error in ca...

2 第乙個lua程式

1.建立乙個lua的c 專案 2.指定lua的源 路勁 專案 屬性 配置屬性 c c 常規 附加包含路勁 1.luadll luadll 3.新增lua的lib路勁和庫名 1.專案 屬性 配置屬性 鏈結器 高階 附加庫目錄 lib 2.專案 屬性 配置屬性 鏈結器 輸入 附加依賴項 新增luadll...