編譯lua可執行程序

前言

lua是一個很是好用的動態語音,最適合嵌入其餘程序中使用。
我已經見過不少軟件使用lua腳本讓用戶自定義想要的功能,而那些軟件爲lua提供接口便可,完成高度可定製的需求。
例如大名鼎鼎的Redis就使用lua做爲嵌入腳本,還有Nginx-lua,Skynet等我用過的軟件都是嵌入lua腳本。
所以編譯lua成了基本操做,完成了這個基本操做,才能進行下一步的定製。html

編譯

  1. Linux只須要準備gcc環境,這個比較簡單。window可參考我這篇文章
  2. 下載lua源碼下載地址,完了使用cmd命令行窗口進入lua的src目錄。
  3. Linux下:make linux test,windos下:make mingw test,而後就能夠編譯成功。
  4. 爲編譯後的可執行程序添加圖標:
    準備一個lua.rc文件,在這個文件中能夠定義編譯後的exe文件不少其餘信息,內容以下:
id ICON "lua.ico"
1 VERSIONINFO
FILEVERSION     5,4,2,0
PRODUCTVERSION  5,4,2,0
BEGIN
  BLOCK "StringFileInfo"
  BEGIN
    BLOCK "080404E4"
    BEGIN
      VALUE "CompanyName", "Janbar Company"
      VALUE "FileDescription", "Janbar build lua"
      VALUE "FileVersion", "5.4.2"
      VALUE "InternalName", "lua"
      VALUE "LegalCopyright", "Janbar"
      VALUE "OriginalFilename", "lua.exe"
      VALUE "ProductName", "lua"
      VALUE "ProductVersion", "5.4.2"
    END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0x804, 1252
  END
END

準備一個lua.ico的圖片文件,我是48×48的大小。
而後修改Makefile,修改方法以下所示。linux

LUA_T=	lua
LUA_O=	lua.o luarc.o  # 增長luarc.o一塊兒編譯出lua.exe
LUAC_T=	luac
LUAC_O=	luac.o luarc.o  # 增長luarc.o一塊兒編譯出luac.exe

mingw:
	windres lua.rc -O coff -o luarc.o   #這裏增長一行編譯lua.rc文件
  1. 最終編譯出來的可執行程序以下圖所示:

  1. 下圖表示編譯後的可執行程序按照lua.rc中填寫的信息展現。

總結

本身動手編譯lua可執行程序過程當中雖然遇到了不少問題,但都一一解決了,最後保存編譯後的結果,美滋滋。
須要注意的是編譯後須要使用的文件有:lua.exe、luac.exe、lua54.dllui

相關文章
相關標籤/搜索