雖然說VC是Windows下C++開發的首選工具,但有時候寫一些小程序,我仍是更傾向於使用一些輕量級的開發工具。好比最近研究Lua嵌入 C++,有時候只是寫一些很小的程序,這時候Visual Studio就顯得太過臃腫了,因而我選擇了EditPlus+MinGW的方法。搞了兩個晚上,終於搭建好了環境,在這裏總結一下,以備未來查看。
MinGW的安裝比較簡單了。我偷懶直接下了個自動安裝程序,他會本身去下載最新的包,並解壓到正確的位置。爲了更方便的使用,還須要配置環境變 量,google了一下,還挺多。要是每到一臺機器都要這樣配置的話,那不是很累。本着計算機能完成的工做毫不本身作的原則,我決定寫個js腳本配置環境 變量。最開始採用了修改註冊表的方法,可是後來發現這種方式修改環境變量是不能當即生效的。又google了一下,改用WScript的shell對象來 直接修改環境變量。ios
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;";c++
function GetCurrPath ()
{
fso = new ActiveXObject ("Scripting.FileSystemObject" );
currFolder = fso . GetFolder ("." );
return currFolder . path
}
//取得當前路徑
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 ;
PATH = PATH + WshSysEnv ("PATH" );
WshSysEnv ("PATH" ) = PATH ;
WScript . Echo ("MinGW環境變量設置完成!" );shell
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小程序
function GetCurrPath ()
{
fso = new ActiveXObject ("Scripting.FileSystemObject" );
currFolder = fso . GetFolder ("." );
return currFolder . path
}
//取得當前路徑
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環境變量設置完成!" );ide
#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 ;
}工具
print (" Hello World!" )開發工具
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測試
g++ -c main.cpp
g++ -o main.exe main.o -llua5.1
main.exe
Hello World!
請按任意鍵繼續. . .ui