g++ を使用して、SDL でプログラムをコンパイルしようとしています。
このプログラムは、次のように 2 つの SDL テスト行を含む main.cpp ファイルのみです。
#include "SDL/SDL.h"
using namespace std;
int main(void) {
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Quit();
return 0;
}
しかし、私の問題は、SDL ライブラリに関するエラーが発生することです。
まず、C++11 について学べるように MinGW32 をインストールしたので、GCC のバージョンを尋ねると、version 4.7.0
.
SDL-devel-1.2.15-mingw32.tar.gz
次に、SDL Web サイトからファイルをダウンロードし、フォルダをデスクトップに展開しました。
その後、すべてのヘッダー ファイルを から にコピーし/SDL-1.2.15/include/SDL
ましたC:/MinGW/include/SDL
/SDL-1.2.15/lib
次に、フォルダーから3つのファイルをコピーしましたC:/MinGW/lib folder
彼らはいた:
libSDL.dll.a
libSDL.la
libSDLmain.a
SDL.dll
最後に、ファイルを bin ディレクトリから .exe ファイルのコンパイル元と同じディレクトリにコピーしました。
すべてを正しくセットアップしたと思いますが、コンパイルしようとした方法に基づいて、2 つの異なるメッセージが表示されます。
まず、Sublime Text 2 エディターのビルド システム機能を使用してコンパイルしてみました。
これは、Sublime Text 2 に実行するように指示したコマンドです。
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}", "-lmingw32 -lSDLmain -lSDL -mwindows"]
これを実行すると、次のエラー メッセージが表示されます。
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
誰かが私が間違っていることを見ることができますか?
コマンドをどこから実行したかによって 2 つの異なるメッセージが表示されるのはなぜですか? また、これを修正するにはどうすればよいですか?
どんな助けでも大歓迎です。