關(guān)于MinGW Lua環(huán)境配置學(xué)習(xí)教程
關(guān)于MinGW Lua環(huán)境配置是本文要介紹的內(nèi)容,主要是來(lái)學(xué)習(xí)lua中環(huán)境配置的問(wèn)題,具體內(nèi)容來(lái)看本文詳解。
雖說(shuō)VC是Windows下C++開(kāi)發(fā)的***工具,但有時(shí)候?qū)懸恍┬〕绦?,我還是更傾向于使用一些輕量級(jí)的開(kāi)發(fā)工具。比如最近研究Lua嵌入C++,有時(shí)候只是寫一些很小的程序,這時(shí)候Visual Studio就顯得太過(guò)臃腫了,于是我選擇了EditPlus+MinGW的方法。搞了兩個(gè)晚上,終于搭建好了環(huán)境,在這里總結(jié)一下,以備將來(lái)查看。
MinGW的安裝比較簡(jiǎn)單了。我偷懶直接下了個(gè)自動(dòng)安裝程序,他會(huì)自己去下載***的包,并解壓到正確的位置。為了更方便的使用,還需要配置環(huán)境變量,google了一下,還挺多。要是每到一臺(tái)機(jī)器都要這樣配置的話,那不是很累。本著計(jì)算機(jī)能完成的工作絕不自己做的原則,我決定寫個(gè)js腳本配置環(huán)境變量。最開(kāi)始采用了修改注冊(cè)表的方法,但是后來(lái)發(fā)現(xiàn)這種方式修改環(huán)境變量是不能立即生效的。又google了一下,改用WScript的shell對(duì)象來(lái)直接修改環(huán)境變量。
要配置的環(huán)境變量:
- MINGW_PATH = “MinGW的主目錄”
- C_INCLUDE_PATH = "%MINGW_PATH%\\include;%MINGW_PATH%\\lib\\gcc\\mingw32\\3.4.5\\include ";
- CPLUS_INCLUDE_PATH = "%MINGW_PATH%\\include\\c++\\3.4.5;%MINGW_PATH%\\include\\c++\\3.4.5\\mingw32;%MINGW_PATH%
- \include\\c++\\3.4.5\\backward;%C_INCLUDE_PATH% ";
- LIBRARY_PATH = "%MINGW_PATH%\\lib;%MINGW_PATH%\\lib\\gcc\\mingw32\\3.4.5";
- PATH = "%MINGW_PATH%\\bin;%MINGW_PATH%\\libexec\\gcc\\mingw32\\3.4.5;";
寫成js腳本,把這個(gè)腳本放到MinGW的主目錄里,雙擊運(yùn)行就可以了。
- function GetCurrPath ()
- {
- fso = new ActiveXObject ("Scripting.FileSystemObject" );
- currFolder = fso . GetFolder ("." );
- return currFolder . path
- }
- //取得當(dāng)前路徑
- MINGW_PATH = GetCurrPath ();
- C_INCLUDE_PATH = "%MINGW_PATH%\\include;%MINGW_PATH%\\lib\\gcc\\mingw32\\3.4.5\\include " ;
- CPLUS_INCLUDE_PATH = "%MINGW_PATH%\\include\\c++\\3.4.5;%MINGW_PATH%\\include\\c++\\3.4.5\\mingw32;%MINGW_PATH%\\include\
- \c++\\3.4.5\\backward;%C_INCLUDE_PATH% " ;
- LIBRARY_PATH = "%MINGW_PATH%\\lib;%MINGW_PATH%\\lib\\gcc\\mingw32\\3.4.5" ;
- PATH = "%MINGW_PATH%\\bin;%MINGW_PATH%\\libexec\\gcc\\mingw32\\3.4.5;" ;
- var WshShell = WScript . CreateObject ("WScript.Shell" );
- var WshSysEnv = WshShell . Environment ("SYSTEM" );
- WshSysEnv ("MINGW_PATH" ) = MINGW_PATH ;
- WshSysEnv ("C_INCLUDE_PATH" ) = C_INCLUDE_PATH ;
- WshSysEnv ("CPLUS_INCLUDE_PATH" ) = CPLUS_INCLUDE_PATH ;
- WshSysEnv ("LIBRARY_PATH" ) = LIBRARY_PATH ;
- PATHPATH = PATH + WshSysEnv ("PATH" );
- WshSysEnv ("PATH" ) = PATH ;
- WScript . Echo ("MinGW環(huán)境變量設(shè)置完成!" );
接下來(lái)是Lua環(huán)境,下載Lua的bin和lib以后,做成下面的目錄結(jié)構(gòu):
- Lua
- │
- ├─bin
- │ bin2c.exe
- │ lua.exe
- │ lua5.1.dll
- │ lua51.dll
- │ luac.exe
- │ wlua.exe
- │
- ├─include
- │ lauxlib.h
- │ lua.h
- │ lua.hpp
- │ luaconf.h
- │ lualib.h
- │
- └─lib
- lua5.1.lib
- lua51.lib
然后仍然是js腳本配置環(huán)境變量:
- function GetCurrPath ()
- {
- fso = new ActiveXObject ("Scripting.FileSystemObject" );
- currFolder = fso . GetFolder ("." );
- return currFolder . path
- }
- //取得當(dāng)前路徑
- LUA_HOME = GetCurrPath ();
- LUA_BIN = "%LUA_HOME%\\bin;" ;
- LUA_INCLUDE = "%LUA_HOME%\\include;" ;
- LUA_LIB = "%LUA_HOME%\\lib;" ;
- var WshShell = WScript . CreateObject ("WScript.Shell" );
- var WshSysEnv = WshShell . Environment ("SYSTEM" );
- WshSysEnv ("LUA_HOME" ) = LUA_HOME ;
- //bin加入path
- WshSysEnv ("PATH" ) = LUA_BIN + WshSysEnv ("PATH" );
- //include加入MinGW
- WshSysEnv ("C_INCLUDE_PATH" ) = LUA_INCLUDE + WshSysEnv ("C_INCLUDE_PATH" );
- //lib加入MinGW
- WshSysEnv ("LIBRARY_PATH" ) = LUA_LIB + WshSysEnv ("LIBRARY_PATH" );
- WScript . Echo ("LUA環(huán)境變量設(shè)置完成!" );
- 有時(shí)候設(shè)置好了卻不生效,重啟一下就好了。先寫個(gè)Hello World測(cè)試一下。
- #include <lua.hpp>
- #include <iostream>
- using namespace std ;
- int main ()
- {
- lua_State * L = lua_open ();
- lua_cpcall (L , luaopen_base , 0 );
- if (luaL_loadfile (L , "test.lua" ) || lua_pcall (L , 0 , 0 , 0 ))
- cout << lua_tostring (L , - 1 )<< endl ;
- lua_close (L );
- system ("pause" );
- return 0 ;
- }
- test.lua:
- print (" Hello World!" )
- makefile:
- all : main.exe
- #all:rebuild
- main.exe
- main.exe : main.o
- g++ -o $@ $^ -llua5.1
- main.o : main.cpp
- g++ -c main.cpp
- clear :
- -del *.exe *.o
- rebuild : clear main.exe
直接make,編譯、連接、運(yùn)行一次搞定。
- g++ -c main.cpp
- g++ -o main.exe main.o -llua5.1
- main.exe
- Hello World!
請(qǐng)按任意鍵繼續(xù)。
小結(jié):關(guān)于MinGW Lua環(huán)境配置學(xué)習(xí)教程的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!