我有一個系統,用於使用makefile和命令行工具構建已經設置好的軟件。讓SDL在C++入口點上工作在OSX上
我一直很容易修改makefile來支持我的Mac(10.7.4現在),所以我試圖讓我的代碼獨立於XCode工作。一旦我開始將東西移植到iOS上,我會處理XCode。我希望makefile解決方案(儘管我的代碼庫仍然可以通過makefile管理)使我可以更好地選擇可移植性和自動化。
我正在體驗here。代碼編譯和運行時遇到的問題。
起初,我使用SDL網站上二進制下載的SDL框架(-framework SDL
),所以我想我可以通過從源代碼正確構建SDL來解決問題。我已經完成了這一步,現在鏈接到libSDL.a
和libSDLMain.a
。這反過來又要求我包括這些額外的框架,以成功編譯(我的列表想出了基於的sdl-config --static-libs
輸出:
-framework Cocoa -framework IOKit -framework AudioToolbox -framework AudioUnit -framework Carbon -framework ApplicationServices
但是我仍然有同樣的問題,該文章介紹有做缺少此:。
[NSApplication sharedApplication];
我的代碼沒有任何的OBJ-C代碼,我很高興一些的OBJ-C塞了進去,雖然我補充說,一個程序包來SDLMain.m
但是鏈接有問題與此同時:ld: duplicate symbol _main
好的,所以我不會因爲那麼容易而逃脫。
什麼是我錯過的小片段,會讓我初始化我的NSApplication?有沒有辦法做到這一點,沒有一個單獨的源文件(從我的Main.cpp
),現在必須是Obj-C?是否有一些C/C++包裝函數,我可以撥打sharedApplication
?
是的,這是SDLmain不得不在Windows上執行的魔術的後果,以某種方式跟蹤標準I/O,但每次啓動時都不會彈出煩人的終端窗口。 – RavuAlHemio