[轉載]使用VS2015搭建Lua開發環境

參考原文請看:html

Lua學習筆記1:Windows7下使用VS2015搭建Lua開發環境(一)c++

Lua學習筆記2:Windows7下使用VS2015搭建Lua開發環境(二)windows

本篇主要分如下幾個部分:函數

1、下載並利用vs2015編譯lua源碼工具

  編譯lua主要編譯三個部分,lua連接庫,lua解釋器,lua編譯器學習

  lua連接庫就是靜態庫和動態庫,*.lib和*.dll。有了dll就能夠直接在工程裏開發了。就如示例二中,直接添加了連接,就能夠調用lua函數,並正常運行了。測試

  lua.exe是lua的解釋器,能夠直接運行lua腳本;就是編寫了lua文件,好比test.lua,就能夠運行,或者在命令行直接輸入lua,而後按照lua規則寫腳本並直接運行了。lua

  luac.exe是lua的編譯工具,生成lua字節碼,以便lua代碼的更快加載和保護lua代碼,同時也能檢查lua腳本的錯誤。spa

2、示例:使用vs2015建立c++,調用lua方法命令行

 

1、下載並編譯lua源碼

 <1>、首先進入lua官網,下載最新版本的lua源碼。

lua1.png

 

lua2.png 

  這裏我將文件解壓放到D盤,D:\lua-5.3.1就是該目錄。

 

lua3.png 

<2>、啓動VS2015建立新的項目

 

  一、選擇【文件】—>【新建】—>【項目】,選擇Win32裏面的Win32控制檯應用程序,這裏我設置名稱爲Lua5.3,其餘配置參數不變,點擊【肯定】按鈕。

 

1.png 

 

  二、在應用程序設置嚮導裏面,選擇類型爲【靜態庫】,而後點擊【完成】便可,如圖所示。

 

2.png 

 

  三、建立好項目後,在【頭文件】選項上點擊鼠標右鍵,以此選擇【添加】—>【現有項】,而後找到咱們的lua目錄下的src文件夾,這裏個人爲D:\lua-5.3.1\src目錄。而後咱們把src下的全部.h文件添加到頭文件。

  四、同上操做,咱們把除去【lua.c】和【luac.c】覺得的全部.c文件都添加到【源文件】。

  注意: 須要注意的是 lua.c  和luac.c 不能拷貝進去,這兩個文件不能編譯。如圖所示:

 

3.png 

 

  五、配置項目的屬性,在項目的「配置屬性」 界面中操做選擇【C/C++】—> 【常規】—> 【附加包含目錄】,而後輸入咱們的lua源碼路徑D:\lua-5.3.1\src。如圖所示:

 

4.png

 

  而後在【C/C++】—> 【高級】—> 【編譯爲】選擇【編譯爲C代碼(/TC)】,最後肯定。

 

5.png 

 

  配置好上面這些後,而後咱們就能夠開始編譯此項目來生成咱們須要的.lib庫文件,如圖。

 

6.png 

 

  這裏生成成功了,若是Debug生成失敗你們可使用Release 來生成,生成後的.lib文件咱們能夠在咱們的項目目錄裏查看,如圖所示。

7.png 

 <3>、生成了lib文件,可能已經知足需求了,可是若是須要dll的話,也要生成dll文件。

  利用上面已經建好的目錄,右鍵項目->屬性,打開屬性界面,選擇配置屬性-》常規,將配置類型由lib,改爲dll。如圖所示:

  

  點擊應用,肯定。而後從新生成,就能夠生成dll文件。

<4>、編譯lua解釋器lua.exe

  將lua.c和luac.c添加進項目的源文件。而後將luac.c的main函數註釋掉。

  一樣,將項目的配置類型改成exe,而後右鍵項目從新生成,不出問題會生成lua5.3.exe,但也可能出錯。我遇到的錯誤是:

  MSVCRTD.lib(crtexew.obj) : error LNK2019: 沒法解析的外部符號 WinMain

  這個錯誤是入口函數不對致使的。

  ‘

  緣由分析

 

產生這個問題的真正緣由是c++語言運行時找不到適當的程序入口函數,通常狀況下,若是是windows程序,那麼WinMain是入口函數,在VS2010中新建項目爲「win32項目」若是是dos控制檯程序,那麼main是入口函數,在VS2010中新建項目爲「win32控制檯應用程序」。而若是入口函數指定不當,很顯然c++語言運行時找不到配合函數,它就會報告錯誤。

  解決辦法

若是咱們須要的是windows程序

Step1.菜單中選擇 Project->Properties, 彈出Property Pages窗口
Step2.在左邊欄中依次選擇:Configuration Properties->C/C++->Preprocessor,而後在右邊欄的Preprocessor Definitions對應的項中刪除_CONSOLE, 添加_WINDOWS.
Step3.在左邊欄中依次選擇:Configuration Properties->Linker->System,而後在右邊欄的SubSystem對應的項改成Windows(/SUBSYSTEM:WINDOWS)

若是咱們須要的是控制檯程序

Step1.菜單中選擇 Project->Properties, 彈出Property Pages窗口
Step2.在左邊欄中依次選擇:Configuration Properties->C/C++->Preprocessor,而後在右邊欄的Preprocessor Definitions對應的項中刪除_WINDOWS, 添加_CONSOLE.
Step3.在左邊欄中依次選擇:Configuration Properties->Linker->System,而後在右邊欄的SubSystem對應的項改成CONSOLE(/SUBSYSTEM:CONSOLE)

 

  ’

  這裏,咱們須要的是console也就是控制檯程序。所以添加_CONSOLE,並將系統改成CONSOLE以後,就能夠生成lua.exe了。

<5>、生成編譯器luac.exe

  將lua.c的main函數註釋掉,解開luac.c的main函數,直接從新生成就是luac.exe了。

到此爲止,咱們的lua5.3就編譯好了,爲方便之後引用,這裏我把他拷貝到lua\bin目錄下,如圖所示。

 

2、示例

(1)、連接庫示例

  一、首先咱們使用vs2015新建一個Win32控制檯應用程序,命名爲LuaTest。

test1.png

test2.png

 

 

  二、配置lua項目頭文件默認路徑

 

在項目的「配置屬性」 界面中操做選擇【C/C++】—> 【常規】—> 【附加包含目錄】,而後輸入咱們的lua源碼路徑D:\lua-5.3.1\src。如圖所示:

test3.png 

 

  三、爲項目添加.lib庫引用

配置項目的屬性,在項目的「配置屬性」 界面中操做選擇【連接器】—> 【常規】—> 【附加庫目錄】,而後輸入咱們的lua庫文件目錄,這個目錄爲咱們上篇結尾處放置的位置。也就是咱們的lua5.3的源碼目錄,D:\lua-5.3.1\。如圖所示:

test4.png 

 

配置項目的屬性,在項目的「配置屬性」 界面中操做選擇【連接器】—> 【輸入】—> 【附加依賴庫】位置添加咱們所編譯的Lua5.3.lib庫文件名稱,而後肯定便可。如圖所示:

test5.png 

 

到此咱們的lua開發環境算是配置好了,下面咱們來測試咱們本身搭建的lua環境。

咱們在源代碼裏建立一個main.lua的文件,如圖所示

test6.png 

建立好後,咱們在裏面輸入打印文本。如圖所示:

test7.png 

 

而後在LuaTest.cpp主函數裏面,咱們引用標準輸入輸出以及lua的頭文件,而後編寫測試代碼,這裏是打印main.lua文件裏的內容。如圖所示:

test8.png

test9.png 

到此,咱們完整的lua環境就算搭建好了啊。

<2>、命令行測試

  將剛纔bin目錄,配置到個人電腦環境變量path內。敲入cmd命令,將控制檯打開,輸入lua,將出現

  

 

  輸入print("hello world!")

  控制檯會輸出hello world!。這標誌這lua.exe編譯正確。

<3>、luac.exe

  有的時候咱們的lua程序不想被別人看到源碼,咱們就編譯成一個.out中間文件,首先建立一個lua程序(新建記事本程序後改後綴名.lua)hello.lua,在裏面寫print("hello world")而後在控制檯切換到luac.exe的目錄下輸入luac hello.lua,會獲得一個luac.out文件,而後在控制檯輸入lua.exe luac.out就能夠輸出Hello World了。

總結工做終於大功告成啦~~~~~

相關文章
相關標籤/搜索