如何在Windows平台使用VS搭建C++/Lua的開發環境


轉自:http://ju.outofmemory.cn/entry/95358

本文主要介紹如何在Windows平台利用VS搭建C++/Lua開發環境。這里的“C++/Lua開發環境”主要指的是C++調用Lua,以及Lua調用C++。Mac平台相對會比較方便,但是VS也不是很麻煩就是了。Mac上利用XCode搭建的教程可以參考子龍山人的教程,當然也可以利用其他IDE,比如Eclipse+CDT+LDT來搭建,這都沒有問題。

另外,本文不談及Lua/C++的交互,相關內容可以參考《Lua程序設計》,或者子龍山人的Lua系列教程

環境

  • Windows 8.1
  • VS2012
  • Lua5.2.3

如何搭建

1.生成Lua靜態庫

(1)下載lua src。

最新版本是5.2.3。 下載地址

(2)新建VS Win32控制台應用程序,取名為Lua。在應用程序設置中選擇應用程序類型為靜態庫,附加選項中取消預編譯頭的勾選。

(3)在Lua的VS項目文件夾中新建LuaSrc目錄,用於存放Lua源碼。解壓下載的lua src,拷貝src目錄下所有 * .c和 * .h文件到LuaSrc。

(4)在Lua的VS項目文件夾中新建bin目錄,用於存放Lua.lib。

(5)在VS環境中,右鍵點擊Lua項目,選擇添加->現有項,導入LuaSrc目錄下所有的文件。

(6)右鍵點擊Lua項目,選擇屬性,在頂部選擇所有配置,然后修改配置屬性->常規->輸出目錄為

$(SolutionDir)bin

(7)為了禁止一些安全警告(Windows程序員知道為什么),需要再修改配置屬性->C/C++–>預處理器->預處理器定義,在末尾添加

;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE

(8)選擇release模式,點擊項目,生成Lua.lib即可。Lua.lib生成在bin目錄下。

2.調用Lua靜態庫

(1)在Lua解決方案下新建名字為HelloLua的Win32控制台程序,采用默認選項,不做修改。

(2)右鍵點擊HelloLua項目,選擇屬性,修改配置屬性->C/C++–>附加包含目錄,新增

..\LuaSrc

(3)在修改配置屬性->鏈接器->輸入->附加依賴項,新增

..\bin\Lua.lib

或者使用代碼鏈接lua庫,即在HeloLua.cpp中添加如下代碼,

#pragma comment (lib,"../bin/Lua.lib")

(4)設置HelloLua項目為默認啟動項,點擊生成項目即可。

(5)因為此時main函數並沒有執行任何代碼,所以控制台一閃而過。右鍵HelloLua項目的源文件,添加新建項,取名hellolua.lua。

(6)一個簡單的調用示例:

*hellolua.lua*

  print("Hello, Lua")

*HelloLua.cpp*

  #include "stdafx.h"
  #pragma comment (lib,"Lua.lib")

  #include "lua.hpp"

  int _tmain(int argc, _TCHAR* argv[])
  {
      lua_State* lua_state = luaL_newstate();
      luaL_openlibs(lua_state);
      luaL_dofile(lua_state,"hellolua.lua");
      lua_close(lua_state);
      getchar();
      return 0;
  }

效果

3.生成Lua.exe和Luac.exe

由於下載的lua源碼中包含lua.c和luac.c,這兩個文件都有main入口,同時編譯的話會出錯,所以只要刪除其中一個,另一個就可以正常編譯。

(1)新建VS空項目,取名為Lua。

(2)在Lua的VS項目文件夾中新建LuaSrc目錄,用於存放Lua源碼。解壓下載的lua src,拷貝src目錄下是所有 * .c和 * .h文件。

(3)在VS環境中,右鍵點擊Lua項目,選擇添加->現有項,導入LuaSrc目錄下所有的文件。

(4)右鍵點擊Lua項目,選擇屬性,在頂部選擇所有配置,然后修改配置屬性->C/C++–>預處理器->預處理器定義,在末尾添加

;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE

(5)在Lua項目的源文件,找到luac.c,右鍵移除。

(6)選擇release模式,點擊項目生成lua.exe即可。

(7)同理在同個解決方案下創建LuaC空項目,按以上步驟生成luac.exe。只是第五步要改為“找到lua.c,右鍵移除”。

(8)lua.exe和luac.exe生成在Lua項目目錄下的release目錄。

C++調用Lua項目:https://github.com/fusijie/Cpp_Lua_VS2012

Lua和LuaC項目:https://github.com/fusijie/Lua_LuaC_exe

如果你不想這么麻煩,也可以直接從上述2個github地址直接clone我的項目。

原文地址:http://www.fusijie.com/blog/2014/08/31/how-to-complie-cpp-with-lua-in-the-vs/
 版權聲明:自由轉載-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM