(Lua) C++ 加入 Lua 環境擴充應用強度
Lua 在網上有非常多的介紹,就是一個小而巧的語言,可以放入嵌入式系統 也可以在一般的應用上非常強大,這邊主要記錄如何讓Lua加入C++裡頭應用 Lua source code 是以 C 語言下去編寫,在網上查編譯完大概有200K的大小 對於應用在STM32F407 感覺綽綽有餘 F4的Flash大小有1M很足夠我使用。 主要想利用他在嵌入式系統上面應用,由於涉世未深還是先從PC上慢慢學習體驗 ? 先從官方網站下載 Lua 5.3.5?目前的最新版本,第一步就是將 C code編譯成 DLL提供給 C++使用,我的環境是 Visual Studio 2013。 在開始編譯之前 先把 lua.c luac.c 兩個檔案移除,潛潛的描述一下原因的話我想是這2份檔案裡頭 都有一個 main ,所以我們不需要他們。 接下來把剩下的檔案複製起來放到 Visual Studio 相關的 Project。 我的習慣是 src 和 inc 分開放看起來比較整齊。 接下來很簡單在 VS 上頭開一個 empty (空的) Win32 project,在把屬性改成我們想要的dll 跟 靜態函式庫 (static Library) 在來將 inc 的路徑加入到屬性 在來就可以直接 build 一個想要的 Lua API 跟 lib了 在Release 資料夾中就可以找到需要的 Lua DLL,在將 DLL 加入需要的 VS 就可以暢快的學習Lua了 以下簡單的範例程式就可以測試Lua能否使用了 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <iostream> 4 5 extern "C"{ 6 #include "lua.h" 7 #include "lauxlib.h" 8 #include "lualib.h" 9 } 10 11 using namespace std; 12 13 int main(int argc,const char *argv[]) 14 { 15 //cout << "lua test platform!!!" << endl; 16 string scriptnema = "main.lua"; 17 int luaError; 18 lua_State *L = luaL_newstate(); 19 20 if (L == NULL) 21 { 22 cout << "luaL_newstate faile !!!" << endl; 23 return -1; 24 } 25 26 luaL_openlibs(L); 27 luaL_dofile(L,scriptnema.c_str()); 28 29 lua_close(L); 30 system("pause"); 31 return 0; 32 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |