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...