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能否使用了
#include <stdio.h>
#include <stdlib.h>
#include <iostream> extern "C"{
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
} using namespace std; int main(int argc, const char *argv[])
{
//cout << "lua test platform!!!" << endl;
string scriptnema = "main.lua";
int luaError;
lua_State *L = luaL_newstate(); if (L == NULL)
{
cout << "luaL_newstate faile !!!" << endl;
return -;
} luaL_openlibs(L);
luaL_dofile(L, scriptnema.c_str()); lua_close(L);
system("pause");
return ;
}