Mingw下安裝 SDL的問題

   建立完開發環境以後,就要做一些測試,看看自己的環境是否工作正常。
下邊就開始吧。
   打開eclipse,新建工程

然後是


然後,直接點擊“Finish”。然後是

至此,還要進行一些特別的設置,能夠讓工程識別SDL開發包
具體參照一下網址:http://lazyfoo.net/SDL_tutorials/lesson01/windows/eclipse/index.php
關鍵就是,-lmingw32,-lSDLmain,-lSDL庫的引入。
例如:-lSDL意思就是在連接的時候,編譯器要把開發環境下的/lib/libSDL.a函數庫編譯進去。在本文中libSDL.a在../mingw/lib/libSDL.a

這個設置的完了以後,編譯的時候控制檯會出這樣的消息:
-----------------------------------------------------------------------------------------------------------------------------

**** Build of configuration Debug for project helloworld ****

**** Internal Builder is used for build               ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\helloworld.o ..\src\helloworld.cpp
g++ -ohelloworld.exe src\helloworld.o -lmingw32 -lSDLmain -lSDL
D:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../libSDLmain.a(SDL_win32_main.o): In function `console_main':
/Users/hercules/trunk/SDL-1.2/./src/main/win32/SDL_win32_main.c:246: undefined reference to `SDL_main'
collect2: ld returned 1 exit status
Build error occurred, build is stopped
Time consumed: 1906 ms.
--------------------------------------------------------------------------------------------------------------------------------


等等,怎麼會有錯呢?那就要查一查了。
首先確認,引入函數庫了沒有。
g++ -ohelloworld.exe src\helloworld.o -lmingw32 -lSDLmain -lSDL

注意:這三個庫的鏈入的順序不能變
這句話表明基本的函數庫確實引入了。
其次,看看代碼,那就把代碼貼出來吧,如下:


大家看看,紅色標記區域有錯嗎?


沒有啊,全部符合語法規範呀。也引入了SDL.h頭文件呀。而且eclipse可以認出SDL_init函數呀。


怎麼回事呢。本人就是在這一點被卡住了,在網上尋找了,好長時間,就是沒有找到解決的方法。最後突然想起,是不是main函數參數的問題?因爲前幾天好像在哪裏看到過SDL得程序main函數參數不能省去。於是,就加入嘗試一下,並且編譯嘗試。修改後的代碼如下:



竟然好了,通過了,這個問題浪費了近兩個小時時間,總是摸不清頭腦。


至此,第一個基於SDL得程序就成功了.赫赫,算是小有收穫吧。


好了,祝大家開心,也祝我開心,順利的進行下去!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章