如何在C語言中編譯嵌入式Lua程式碼?
我們知道,Lua 在作為一種簡單的語言和嵌入式語言方面做得非常出色。由於提供了大量支援它的不同庫,Lua 與 C 語言配合得更好。
為了在 C 語言中編譯嵌入式 Lua,我們需要首先編寫一個 Lua 程式,然後編寫一個 C 程式來呼叫 Lua 程式函式,最後編譯 C 程式。
請考慮以下程式作為 Lua 程式:
print("--I am using Lua from within C--")需要注意的是,以上 Lua 指令碼應儲存為 Script.Lua,因為我們將在下面顯示的 C 程式碼中使用該名稱。上述 Lua 指令碼將在 C 程式中被呼叫。
示例
請考慮以下程式碼:
#include <stdlib.h>
#include <stdio.h>
/* Include the Lua API header files. */
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
int main(void) {
static const luaL_reg lualibs[] =
{
{ "base", luaopen_base },
{ NULL, NULL }
{ NULL,
};
/* A function to open up all the Lua libraries you declared above. */ static void openlualibs(lua_State *l) {
const luaL_reg *lib;
for (lib = lualibs; lib->func != NULL; lib++) {
lib->func(l);
lua_settop(l, 0);
}
}
/* Declare a Lua State, open the Lua State and load the libraries (see above). */
lua_State *l;
l = lua_open();
openlualibs(l);
printf("This line in directly from C
");
lua_dofile(l, "script.lua");
printf("
Back to C again
");
/* Remember to destroy the Lua State */
lua_close(l);
return 0;
}現在我們完成了程式碼;我們只需要編譯上面顯示的 C 程式。為此,我們可以執行以下命令:
cc -o embed embed.c \ -I/usr/local/include \ -L/usr/local/lib \ -llua -llualib
需要注意的是,**embed.c** 是上面顯示的 C 檔案的名稱。
此外,上面顯示的命令僅在您使用 Linux 機器時有效。
要在 Windows 上編譯程式碼,我們需要執行以下步驟:
- 建立一個新專案。
- 新增 embed.c 檔案。
- 新增 2 個 Lua 庫 (*.lib) - 標準庫和核心庫。
- 將 Lua 包含檔案的路徑新增到專案選項(“目錄”選項卡)。
- 您可能還需要新增庫檔案的路徑 - 與上述方法相同。
- 編譯並構建 - 就這樣。
輸出
This line in directly from C --I am using Lua from within C-- Back to C again
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP