我一直在嘗試使用g ++編譯帶有SDL的程序。使用SDL和g ++編譯無法找到-lSDLmain等
程序僅帶有兩個SDL測試線,像這樣的main.cpp中的文件:
#include "SDL/SDL.h"
using namespace std;
int main(void) {
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Quit();
return 0;
}
但我的問題是,我得到一個錯誤與SDL庫做。
首先,我安裝了MinGW32,以便我可以瞭解C++ 11,因此當我問GCC的版本是什麼時,它說它是version 4.7.0
。
然後我從SDL網站下載了SDL-devel-1.2.15-mingw32.tar.gz
文件,並將該文件夾解壓到桌面。
之後,我複製了所有從/SDL-1.2.15/include/SDL
的頭文件,以C:/MinGW/include/SDL
然後我複製3個文件從/SDL-1.2.15/lib
文件夾到C:/MinGW/lib folder
他們是:
libSDL.dll.a
libSDL.la
libSDLmain.a
最後我將bin目錄中的SDL.dll
文件複製到將編譯.exe文件的相同目錄中。
我想我已經正確地設置了一切,但基於我如何編譯它,我得到了兩條不同的消息。
首先,我嘗試使用Sublime Text 2編輯器中的構建系統功能來編譯它。
這是我已經告訴崇高文字2運行命令:
當我運行此我得到的錯誤信息:
c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: cannot find lmingw32 -lSDLmain -lSDL -mwindows
collect2.exe: error: ld returned 1 exit status
[Finished in 0.3s with exit code 1]
所以我再試圖編譯直接從命令提示符。
我改變了目錄複製到同一目錄作爲我的main.cpp和運行以下:
g++ main.cpp -o main.exe -lmingw32 -lSDLmain -lSDL -mwindows
,並得到了以下錯誤消息:
c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../libSDLmain.a(SDL_win32_main.o): In function `console_main':
/Users/slouken/release/SDL/SDL-1.2.15/./src/main/win32/SDL_win32_main.c:315: undefined reference to `_SDL_main'
collect2.exe: error: ld returned 1 exit status
任何人能看到我在做什麼錯誤?
爲什麼我根據運行命令的位置得到兩個不同的消息,以及如何解決這個問題?
任何幫助,將不勝感激。
你有沒有嘗試給圖書館顯式路徑?如果在命令行上執行操作太麻煩,可以使用像Code :: Blocks這樣的GUI。 – Antimony 2012-07-08 02:39:05
@Antimony對不起,但我很新,但我該如何爲圖書館提供明確的路徑?我只在這裏使用-lC:\ path \?我正在考慮使用CodeBlocks,但我更喜歡Sublime Text 2,所以我想先試着讓它工作。但是,如果我無論如何無論如何都無法使用它,我現在可能會被迫使用CodeBlocks。 – 2012-07-08 02:41:12
對不起,我沒有從Sublime運行構建工具的經驗。我總是使用Code :: Blocks for C++開發。 – Antimony 2012-07-08 02:44:16