2
我正在開發一個協作項目,並且控制項目主分支的人員在Mac上工作。正因爲如此,他的makefile中有一些細微差別,在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]'
謝謝!你能簡單地解釋一下爲什麼解決了我的問題?另外,當網站讓我在5分鐘左右時,我會接受你的答案:) – Nibirue 2012-04-25 07:13:02
AFAIK SDL將'main'函數轉換爲MinGW32運行時庫中的'WinMain'函數。因此你需要鏈接它。 – 2012-04-25 07:14:35
其實libmingw32必須是第一個。 libs的正確順序是:'-lmingw32 -lSDLmain -lSDL ... rest' – Yarg 2012-04-25 07:14:50