第2課 - 搭建Lua開發環境

第2課 - 搭建Lua開發環境

1. Lua 的優點

  (1)Lua 使用標準的?ANSI C?進行開發,可以無縫集成到宿主程序,且幾乎支持所有平臺

  (2)Lua 是開源且免費的軟件,以源碼的方式直接發布。開源軟件的發布方式有多種形式。

2. 獲取 Lua 源碼

  可以訪問 Lua 的官方網站?http://www.lua.org/ 下載 Lua 源碼,如下圖所示。

  

3. Lua 的源碼結構

    • doc — ?文檔目錄,對當前版本進行說明(編譯,安裝,...)    
    • src??— ?源碼目錄包含所有 Lua 源文件
    • Makefile
    • README

    

4. Lua 源碼編譯后的4個關鍵目標

    • Lua? ? ?— ?解釋器,用于解釋執行腳本或字節碼文件
    • Luac? ?— ?編譯器,用于將腳本文件編譯成字節碼文件
    • liblua? — ?靜態鏈接庫,可鏈接至宿主程序
    • lua5x ?? 動態鏈接庫,可鏈接至宿主程序

  注意:如果項目開放源代碼可以使用腳本文件,如果是商業使用可以將腳本文件編譯成二進制字節碼文件。

5. 在 windows 和 linux 搭建開發環境

  — windows

  (1)windows 在默認情況下沒有安裝 make 和 GNU 編譯器等,所以首先安裝 mingw (Minimalist GNU on Windows)。

     參考資料:http://www.cnblogs.com/qcssmd/p/5302052.html

  (2)打開 windows 的 cmd 命令行,進入 lua-5.3.4\src\ 目錄下執行?make mingw?命令即可生成4個關鍵二進制目標

    

  — linux

  進入 lua-5.3.4/src 目錄下執行?make ?generic?命令即可生成4個關鍵二進制目標

6. Lua的編譯和執行

   lua 直接執行腳本文件

    • lua file_name      

   luac 將腳本文件編譯成字節碼文件

    • luac -o out_file file_name

?

注:本文整理于《狄泰12月提升計劃》課程內容

轉載于:https://www.cnblogs.com/shiwenjie/p/6693998.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393218.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393218.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393218.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于文件系統權限的管理

關于文件系統權限的管理 眾所周知的是,一個操作系統,是需要為不同的用戶進行服務的,因為不能讓每個人都以管理員進行操作,這樣做的話,毫無安全性可言,所以我們需要驗證和授權。這就體現了權限的重要性&…

深度學習工作開展_深入開展深度工作:新經濟中的兩項核心能力

深度學習工作開展by Bar Franek由Bar Franek 深入開展深度工作:新經濟中的兩項核心能力 (Going Deeper on Deep Work: Two Core Abilities for Thriving in the New Economy) 愛深層工作的更多理由 (A Few More Reasons To Love Deep Work) I had no idea my first…

java獲取文件名方法,利用Java獲取文件名、類名、方法名和行號的方法小結

大家都知道,在C語言中,我們可以通過宏FILE、 __LINE__來獲取文件名和行號,而在Java語言中,則可以通過StackTraceElement類來獲取文件名、類名、方法名、行號,具體代碼如下:public static int getLineNumber…

tp5.1升級指導---控制器調整 _initialize方法更改為initialize

控制器調整 為了規范化,繼承了think\Controller類的話,初始化方法從原來的_initialize方法更改為initialize。轉載于:https://www.cnblogs.com/lsyy/p/11027416.html

leetcode537. 復數乘法

給定兩個表示復數的字符串。 返回表示它們乘積的字符串。注意,根據定義 i2 -1 。 示例 1: 輸入: “11i”, “11i” 輸出: “02i” 解釋: (1 i) * (1 i) 1 i2 2 * i 2i ,你需要將它轉換為 02i 的形式。 代碼 class Solution {public String c…

初始多態

package Li;public class Person { String name;public Person() {super(); }public Person(String name) {super();this.name name; }public void eat(){System.out.println(name"正在吃面包"); } }package Li;public class Student extends Person {public Studen…

Bitmap尺度變換

1 Bitmap bitMap BitmapFactory.decodeFile(path);2 int width bitMap.getWidth();3 int height bitMap.getHeight();4 // 設置想要的大小5 int newWidth 500;6 int newHeight 400;7 // 計算縮放比例8 float scaleWidth ((float) newWidth) / width;9 float scaleHeight …

css!important_如何解決CSS特殊性問題以及何時使用!important關鍵字

css!importantby Muna Mohamed通過穆納穆罕默德(Muna Mohamed) 如何解決CSS特殊性問題以及何時使用!important關鍵字 (How to tackle CSS specificity issues and when to use the !important keyword) 案例研究 (A Case Study) Recently, there was a Twitter pol…

php框架使用教程,php框架laravel excel包使用教程介紹

Laravel是一套簡潔、優雅的PHP Web開發框架(PHP Web Framework)。它可以讓你從面條一樣雜亂的代碼中解脫出來;它可以幫你構建一個完美的網絡APP了,下面我們來看看laravel excel包使用教程laravel中excel插件的安裝在composer中引入laravel excel的包&quo…

(私人收藏)python學習(游戲、爬蟲、排序、練習題、錯誤總結)

python學習(游戲、爬蟲、排序、練習題、錯誤總結) https://pan.baidu.com/s/1dPzSoZdULHElKvb57kuKSgl7bz python100經典練習題python-錯誤和異常小結python-大作業之五子棋游戲(附代碼)python-網絡爬蟲幾種排序方法python實現新手常見的python運行時錯誤…

leetcode1300. 轉變數組后最接近目標值的數組和

給你一個整數數組 arr 和一個目標值 target ,請你返回一個整數 value ,使得將數組中所有大于 value 的值變成 value 后,數組的和最接近 target (最接近表示兩者之差的絕對值最小)。 如果有多種使得和最接近 target 的…

MySQL性能指標及計算方法

MySQL性能指標及計算方法 絕大多數MySQL性能指標可以通過以下兩種方式獲取: (1)mysqladmin 使用mysqladmin extended-status命令獲得的MySQL的性能指標,默認為累計值。如果想了解當前狀態,需要進行差值計算&#xff1b…

php可變變量講解,PHP可變變量實例詳解

什么是可變變量?在PHP中有一個其他類型的變量,“可變變量”。可變變量是一種PHP獨特的變量,他允許動態改變一個變量的名稱。可變變量的工作原理這個特性的工作原理是用一個變量的值作為另一個變量的名稱。例如,我們可以設置$str的…

Nginx平滑升級到最新版本

(一)簡述: 早上收到nginx最新漏洞的通知,Nginx官方發布最新的安全公告,在Nginx范圍過濾器中發現了一個安全問題(CVE-2017-7529),通過精心構造的惡意請求可能會導致整數溢出并且不…

如何使用TypeScript從Microsoft Word生成GitHub markdown文件

by Manish Bansal通過Manish Bansal What? Why would one want to generate an MD file from a Microsoft word document? If that’s the first thought you had after reading this title, then let me give you a strong use case.什么? 為什么要從Microsoft …

Android Studio 導入 Android 系統模塊并編譯和調試

FAQ: AS導入系統模塊源碼,并且能夠編譯調試,正常查看java doc ???? Android AOSP基礎(五)Android Studio調試系統源碼的三種方式http://liuwangshu.cn/framework/aosp/5-debug-aosp.html Android AOSP基礎(四&…

2014年ENVI/IDL遙感應用與開發培訓班-11月重慶站 開始報名了

主辦單位: 中國遙感應用協會 Esri中國信息技術有限公司 內容簡單介紹: 依據中國遙感應用協會欒恩杰理事長推動國內遙感技術和應用的指示精神,2014年中國遙感應用協會組織培訓交流部與Esri中國信息技術有限公司將共同在多個城市舉辦以"傳…

Python自動化運維:Django之View視圖和Template

views詳解 http請求中產生兩個核心對象: http請求:HttpRequest對象 http響應:HttpResponse對象 (1) HttpRequest對象 當請求一個頁面時,Django 創建一個 HttpRequest對象包含原數據的請求。然后 Django 加載…

leetcode491. 遞增子序列(回溯算法)

給定一個整型數組, 你的任務是找到所有該數組的遞增子序列&#xff0c;遞增子序列的長度至少是2。 示例: 輸入: [4, 6, 7, 7] 輸出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]] 代碼 class Solution {List<List<Integer>>…

java重入鎖,再探JAVA重入鎖

之前的文章中簡單的為大家介紹了重入鎖JAVA并發之多線程基礎(2)。這里面也是簡單的為大家介紹了重入鎖的幾種性質&#xff0c;這里我們就去探索下里面是如何實現的。我們知道在使用的時候&#xff0c;必須鎖先有定義&#xff0c;然后我們再拿著當前的鎖進行加鎖操作&#xff0c…