我在學校時使用Xcode編寫了許多C和C++控制檯程序。我開始使用Xcode控制檯應用程序模板。我依賴於標準的C庫和POSIX。我遠離Apple特定的庫。我可以在Xcode中構建,運行,分析和調試程序。我在Xcode中唯一不能做的就是生成一個可移植的構建配置。對於這些類項目控制檯程序,我只需要爲每個項目寫一個makefile。因爲我從一開始就知道我需要一個手寫的makefile,所以我保持構建過程簡單。
現在我主要編寫iOS應用程序,但我偶爾會編寫一個控制檯應用程序來爲我的iOS應用程序預處理數據。我沒有看到用於構建跨平臺構建系統的新版Xcode有任何改進。 Xcode專注於iOS和Mac應用程序,但承認需要控制檯程序幷包含一些Mac OS X特定的支持。
所以我在Xcode編寫其他平臺的控制檯程序的建議是保持構建過程的簡單。從Xcode控制檯應用程序項目模板開始。留在Xcode項目構建系統中。使用Xcode IDE功能使程序正常工作。然後將構建過程移植到外部構建系統。編寫一個makefile,或者使用你喜歡的任何構建工具。使用Mac OS X上的命令行在這個新的編譯系統上構建並測試Mac OS X上的程序。然後將該項目移至其他平臺並重新構建並測試。當我到達第二平臺時,我很少發現任何問題。
我甚至使用這種方法在我的團隊成員不在Mac上的團隊中工作。我們每個人都在構建系統中使用我們自己的選擇,共享源代碼文件。然而,我可以看到,維護用於大型複雜程序的多個構建系統很快將變得站不住腳。在這一點上,我會建議在一個IDE上進行標準化。
有一個簡單的解決方案 - 閱讀關於bash,gdb,emacs ...並繼續。告訴你,過了一段時間,你甚至會在Mac上使用這些工具而不是Xcode :) – 2011-12-13 14:10:23
我現在在Linux上使用bash,gdb和vim(gvim)。但我想嘗試使用XCode實用程序進行性能分析等......請看http://dom.as/2011/09/25/blowing-up-in-memory/ –
您無法使用Xcode Profiler來配置爲不受支持的平臺/體系結構,如Linux。另一方面,在Xcode中絕對沒有你無法用英特爾放大器(vTune)做的事情。那麼,或者在OS X上構建應用程序並在其中進行配置文件,但這樣做也不會有多大意義,因爲行爲會有很大差異(例如,epoll vs kqueue等)。只是不要使用valgrind :) – 2011-12-13 14:44:26