lua 源碼編譯
本文介紹了使用 Visual Studio 編譯 lua 源碼的方法漾脂。
下載源碼
源碼下載在 這個頁面
建立解決方案
建立一個空白解決方案呻待,源碼壓縮包解壓后舆吮,將 src 目錄拷貝到解決方案根目錄:
編譯 lua library
在解決方案下建立一個靜態(tài)庫項目 lualib, 建立項目時選擇空項目妻顶、取消預(yù)編譯頭。
在 lualib 項目上右鍵添加現(xiàn)有項滞造,導(dǎo)航到剛剛拷貝的 src 目錄,選擇除了 lua.c, luac.c 之外的所有 .c 文件栋烤。
右鍵生成即可編譯出 lualib.lib谒养。
編譯 lua 解釋器
在解決方案下建立一個控制臺項目 lua, 建立項目時選擇空項目、取消預(yù)編譯頭班缎。
在 lua 項目上右鍵添加現(xiàn)有項蝴光,導(dǎo)航到剛剛拷貝的 src 目錄她渴,選擇 lua.c, lua.h 文件。
在 lua 項目上右鍵生成依賴項蔑祟,讓 lua 項目依賴于 lualib 項目趁耗。
在 lua 項目上右鍵屬性-->鏈接器,設(shè)置附加庫目錄為 lualib 的輸出目錄疆虚,設(shè)置附加依賴項為 lualib.lib苛败。這樣 lua 項目就可以使用 lualib.lib 了。
右鍵生成即可編譯出 lua.exe
雙擊 lua.exe 可以在控制臺里執(zhí)行 lua 代碼:
編譯 luac 編譯器
在解決方案下建立一個控制臺項目 luac, 建立項目時選擇空項目径簿、取消預(yù)編譯頭罢屈。
之后的設(shè)置流程跟 lua 項目的一樣。只是添加現(xiàn)有項的時候只需要添加一個 luac.c 文件即可篇亭。
建立測試項目
在解決方案下建立一個控制臺項目 luatest缠捌。
在 luatest項目上右鍵生成依賴項,讓 luatest 項目依賴于 lualib 項目译蒂。
在 luatest項目上右鍵屬性-->鏈接器曼月,設(shè)置附加庫目錄為 lualib 的輸出目錄,設(shè)置附加依賴項為 lualib.lib柔昼。這樣 luatest 項目就可以使用 lualib.lib 了哑芹。
在 luatest項目上右鍵屬性-->C++, 設(shè)置附加包含目錄為 $(SolutionDir)src:
輸入測試代碼:
#include "stdafx.h"
extern "C"
{
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
}
int main()
{
// 創(chuàng)建一個 lua 虛擬機
lua_State *L = luaL_newstate();
// 注冊庫對象到 lua 虛擬機中
luaL_openlibs(L);
// 將一段 lua 腳本轉(zhuǎn)換成一個 lua function ,然后將這個 lua function 放到棧頂
luaL_loadstring(L, "print(\"hello lua!\")");
// 調(diào)用棧頂?shù)?lua function
lua_pcall(L, 0, LUA_MULTRET, 0);
lua_close(L);
return 0;
}
右鍵生成即可編譯出 luatest.exe