2012-04-25 17 views
2

私は共同プロジェクトで作業しています。プロジェクトのマスターブランチを管理する人は、Macで動作します。このため、メイクファイルには、Windows上で私にはうまく翻訳されない小さな違いがいくつかあります。私はMinGWを使ってライブラリを保持し、g ++を使ってコンパイルします。MakefileにSDLライブラリをリンクする、C++

彼のために働くのMakefile(私はそれが行くべきと思ったとして)

bomb: source/Level.cpp source/Level.h source/main.cpp 
g++ -o bomb source/Level.cpp source/main.cpp -Wall -I. -I\MinGW\include\SDL -lSDLmain -lSDL -lSDL_image 

のMakefile:

bomb: source/Level.cpp source/Level.h source/main.cpp 
g++ -o bomb source/Level.cpp source/main.cpp -Wall -I. -I/Library/Frameworks/SDL.framework/Headers -lSDLmain -lSDL -lSDL_image -framework 

はSDLライブラリのインクルードファイルをマイC」である:\ MinGWの\は、 \ SDL "となります。その知識を使って、私はどのようにmakefileを正しく書いていますか?注意点として、私の現在のメイクファイルを使用しているとき私が得るエラーは次のとおりです。

C:\MinGW\msys\1.0\src\mingwrt/../mingw/main.c:73: undefined reference to '[email protected]' 

答えて

3

を使用すると、ライブラリリストの最後に-lmingw32を追加しようとしたことがありますか?そして、int main(int argc, char** argv)関数はどこかで定義されていますか?また、SDL FAQ

+0

をご覧くださいありがとうございます!あなたは非常に簡単に説明できますか、私の問題を解決したのはなぜですか?また、サイトが約5分で私を許可するとき、あなたの答えを受け入れるでしょう:) – Nibirue

+0

AFAIK SDLは 'main'関数をMinGW32ランタイムライブラリにある' WinMain'関数に変換します。したがって、あなたはそれにリンクする必要があります。 –

+1

実際には、libmingw32が最初になければなりません。 libsの正しい順序は次のとおりです: '-lmingw32 -lSDLmain -lSDL ... rest' – Yarg

関連する問題