SDL入門教程(一):3、MinGW 下的安裝與設置

作者:龍飛

3.1:MinGW 是什麼?

        MinGW 提供了一套簡單方便的Windows下的基於GCC 程序開發環境。MinGW 收集了一系列免費的Windows 使用的頭文件和庫文件;同時整合了GNU( http://www.gnu.org/ )的工具集,特別是GNU 程序開發工具,如經典gcc, g++, make等。MinGW是完全免費的自由軟件,它在Windows平臺上模擬了Linux下GCC的開發環境,爲C++的跨平臺開發提供了良好基礎支持,爲了在Windows下工作的程序員熟悉Linux下的C++工程組織提供了條件。

3.2:爲什麼使用MinGW?

        因爲我和很多IT人士一樣,不願意吊死在$M這棵樹上。且不說開源這個理念的偉大,僅僅就Windows的安全性也已經讓人們很不安心了。如果再深入一點從編寫程序來看,在C++標準尚不成熟時期產生的MFC今天看來基本上就是蓋子大叔憑着個人(或許是$M公司^^)理解所使用的C++方言。在我們期盼C++0x時代到來之前,沒有任何實際行動能比嚴格遵循C++的ISO標準更能表達我們對於C++這個偉大的哲學體系的尊重。從這個角度來說,遵循ISO標準的實現就是好的實現。所以,MinGW不會比VC差,況且,他既是開源軟件家族中的一員,也是*nix平臺下事實標準GCC的翻版。如果有一天我們開始使用Linux平臺了,會因爲今天透過MinGW所瞭解的GCC知識而受益。

3.3:MinGW 的下載和安裝。

        MinGW的官方主頁是:
http://www.mingw.org/
        你很容易找到下載的鏈接。下載文件是放在sourceforge上的,這也表明MinGW本身也是個在開發中的項目。
http://sourceforge.net/project/showfiles.php?group_id=2435
        下載頁面上有很多令人眼花繚亂的文件,不用害怕,因爲這纔是軟件最真實的一面。當然,這個軟件的提供者爲普通使用者也提供了最爲簡單的下載和安裝方式。你只需要下載“MinGW自動下載和安裝軟件”(Package: Automated MinGW Installer; Release: MinGW-5.1.3)MinGW-5.1.3.exe就可以根據提示簡單的安裝了。並且,安裝後的MinGW甚至可以通過這個文件來自動升級,非常的人性化。
        安裝時需要注意以下幾個方面:
1) 建議選擇Current版本,Previous表示以前的版本;Candidate表示當前正在開發的版本,可能正在測試中,還不是非常穩定。
2) 在選擇安裝模塊的時候,根據我們的需要,只需要選擇以下三個:MinGW base tools, g++ compiler, MinGW Make。
3) 安裝路徑請選擇一個容易找到的地方,默認的C:/MinGW 是不錯的選擇。


3.4:MinGW的簡單使用。

        打開“命令提示符”(console)窗口,我們可以簡單的把目錄轉到比如 C:/MinGW/bin 這樣的位置去工作。但是這顯然不是一個好的方式,因爲這樣一定會把bin裏面搞得很混亂。所以,我們在另外一個“乾淨”的地方,比如 D:/Project ,把這裏設置成MinGW的工程工作區。這樣,我們需要在系統的path裏面添加能找到bin下面*.exe文件的路徑,所以做一個批處理文件是最簡單的方法。我的startg++.bat文件這樣寫的:
@set path=C:/mingw/bin;%PATH%; 
@echo ---**歡迎使用MinGW(GCC)系統**---
@echo Update by lf426 ( E-mail: zbln426@
163.com ) 2007-12-10
@cmd 

        然後,你可以建立一個該文件的快捷方式放在桌面上,再爲這個快捷方式指定一個漂亮的圖標,nice!
        接下來,我們需要建立一個cpp文件,用什麼來寫cpp呢?

3.4.1:(插播)Vim ??


        這又是一個有着傳統的“悠久”歷史,很好很強大的,免費開源的,牛x文本編輯器。官方主頁是:
http://www.vim.org/
        不用懷疑,你可以很容易的下載Vim的安裝程序,並且很容易的安裝,不需要任何的“破解”-_-!!
        因爲Vim很好很強大,所以,太多的內容就留給包括我自己在內的大家自己去學了(我的邏輯Orz)。我們這裏簡單的只需要瞭解如下幾點:
1) 建立一個名爲 abc.def 的文本文件,在console窗口下輸入:
vim abc.def
你就進入了vim的編輯界面。
2) 按"i"鍵,就可以輸入文本了。退回到編輯方式,按Esc,再進入插入方式,再按i,就這樣...
3) vim在編輯方式下本來的光標移動是h, j, k, l,不過,上下左右箭頭也是可以使用的。
4) 編輯完成後,(編輯方式下)按Shift+Z兩次,或者:wq就可以保存退出。使用:q!可以不保存強制退出。

3.4.2:MinGW的簡單使用。(續)

        繼續剛纔的話題,我們建立一個叫 hello.cpp 的文件(據說Hello World是程序員的咒語...)

#include <iostream>

int main(int argc, char* argv[])
{
    std::cout 
<< "Hello World." << std::endl;
    
return 0;
}

        我們可以簡單的使用命令:g++ hello.cpp,與最傳統的Unix系統下的C編譯器一樣,MinGW爲我們生成了一個名爲a的可執行文件,當然,在win32下,名字叫做a.exe。
        可以使用參數 -o 來指定編譯的可執行文件的名字:g++ -o hello.exe hello.cpp (或者也可以不寫名exe,直接g++ -o hello hello.cpp 結果一樣)。這樣,得到的文件就是hello.exe。
        可以使用參數 -c 來生成與源文件名相同的目標文件:g++ -c hello.cpp ,得到的文件是hello.o 。
        目標文件可以繼續連接成可執行文件:g++ hello.o ,得到文件a.exe 。
        多個源文件,目標文件和庫文件都可以同時編譯和連接。

3.5:獲得MinGW下的SDL開發庫。(Development Libraries)

        下載頁面:http://www.libsdl.org/download-1.2.php
        下載:SDL-devel-1.2.13-mingw32.tar.gz (Mingw32)

3.6:爲MinGW設置SDL庫。

        找到你在硬盤上安裝MinGW的位置,類似:
C:/MinGW
打開include文件夾,在裏面建立一個新文件夾,取名爲SDL,打開這個新的文件夾:
C:/MinGW/include/SDL
然後,將SDL Development Libraries中include文件夾裏面的文件全部拷貝到剛纔建立起來的那個新文件夾中。
然後,回到MinGW的文件夾下,打開lib文件夾:
C:/MinGW/lib
將SDL Development Libraries中lib文件夾下的libSDL.dll.a, libSDL.la和libSDLmain.a三個文件拷貝到剛纔的那個MinGW的lib文件夾下。
最後,把SDL Development Libraries中lib文件夾下的SDL.dll文件拷貝到
C:/WINDOWS/system32
下。當然,另外一個選擇是將SDL.dll隨時綁定到使用了SDL庫編譯的*.exe文件所在的文件夾中。這通常在發佈你的程序的時候使用。

3.7:建立第一個SDL程序。

運行我們之前的那個startg++.bat 文件,打開console窗口,執行命令:vim main.cpp ,將下列代碼寫入並保存。

#include <iostream>
#include 
"SDL/SDL.h"

int main(int argc, char* argv[])
{
    
try {
        
if ( SDL_Init(SDL_INIT_EVERYTHING) == -1 )
            
throw "Could not initialize SDL!";
    }
    
catch ( const char* s ) {
        std::cerr 
<< s << std::endl;
        
return -1;
    }
    std::cout 
<< "SDL initialized./n";
    SDL_Quit();

    
return 0;
}
執行g++命令:g++ -o MySDL.exe main.cpp -lmingw32 -lSDLmain -lSDL
參數 -l (小寫的L)使庫文件得以與源文件一起編譯和連接。(簡單的可以認爲-labc即連接了名稱符合libabc.*的所有庫文件)
最後說明的兩個參數是:-mconsole 和 -mwindows
他們的效果是使可執行程序是帶命令行控制窗口的或者是純Windows窗口的,缺省情況下應該是帶命令行控制窗口的。
運行mysdl.exe可以看到文件的執行情況。  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章