ios編譯c
A. 我是學計算機的 想用蘋果電腦編程c語言 C++不想裝win系統 怎麼辦啊
1.使用Xcode軟體。Xcode是一個蘋果系統上的集成開發環境(IDE),就是說用Xcode就能編寫C語言程序,並編譯運行。也能開發ios程序等,是一種軟體。在windows上類似這種能編c語言的還有微軟出的visual studio,和其他免費的一些如codeblocks,c-free等。
在Xcode中編譯運行C/C++的操作步驟:
1)打開Xcode,在歡迎界面點擊Create a new Xcode project。
2)彈出一個對話框,在左側欄選擇Mac OS X分類的Application,右側選擇Command Line Tool,點擊Next。
3)在Proct Name填寫項目名稱,如HelloMac,其餘默認即可(type里也可以選擇C或C++),點擊Next後選擇路徑並點擊Create完成項目創建。
4)在Xcode主界面左側點擊main.m,把代碼替換成C/C++的代碼,點擊左上角的Run按鈕即可編譯運行,界面下方會彈出控制台顯示運行結果。
2.Xcode 是蘋果公司開發的編程軟體,是開發人員建立OS X 和 iOS 應用程序的最快捷的方式。Xcode 具有統一的用戶界面設計,編碼、測試、調試都在一個簡單的窗口內完成
B. 蘋果電腦上可以裝c語言編譯器嗎
在蘋果電腦上可以裝c語言編譯器,因為Mac系統本質上是一個Unix系統,是一個開放系統,Unix系統的編寫語言就是C語,兼容C語言編譯器是肯定的了。
目前蘋果的操作系統Mac OS X的開發工具為Xcode,支持C和標准C++程序的編寫。並且Mac平台有很多支持C語言編程的IDE,像NetBeans和Eclipse。
Mac OS X沒有默認安裝C語言編譯器,你需要安裝Xcode,Xcode包含了GCC編譯器。
如果你只是用Mac來學習C語言,安裝一個Xcode即可。Xcode的安裝文件在系統盤的Optional文件夾里。
C. iOS 編譯報錯怎麼辦
1.編譯iPad真機時,選擇了 Architetures:Standard(armv6) BaseSDK:iPhoneDevice3.2 TargetDeviceFamily:iPad.
若編譯出現如下錯誤:
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
則修改 GCC4.2CodeGeneral區域中的ComplieForThumb為非選中.
已經有了開發者證書及私鑰後,可直接在越獄的手機上調試.
2. 編譯鏈接時, "_OBJC_CLASS_$_xxx", referenced from:可能需要重新建立某個類的文件.
或者:選擇項目名,在detail列表中的target列(顯示為一個又圓圈),把這個文件的復選選中,或者再次選中.以把它加入到這個target裡面來.
3.在sdk4.0及以上使用RegexKitLite報'captureCount' was not declared in this scope錯誤,是在非.m文件中使用了它的原因.
4.there is no sdk with the name or path.
從網上down的開源代碼,結果運行的時候常出現這樣的錯,並且在deployment中沒有iosdeploymenttarget選項.
嘗試 Project/Edit Active Target/ 及 Set Active SDK菜單項,來回切換一下Active Configuration。
5. EXEC_BAD_ACCESS,EXC_BAD_INSTRUCTION錯誤,意味著這個app有內存管理的問題,一般是因為訪問野指針對象造成的。
一個和內存相關的崩潰一般很難定位到源代碼,因為這個惡魔可能很早就在程序中做了壞事了。假如一段有問題的代碼混亂了內存結構,這樣產生的蝴蝶效應可能會在之後很久才表現出來,並且總在不同的地方。所以,若有指針類型出現了不可能的變化,很可能就是因為內存結構被野指針調用混亂了。
修復一些警告後,可能就能預防一些內存錯誤。警告在左邊靠近行號的黃色三角指出一個編譯警告,你點擊那個黃色的三角形,xcode可能會彈出一個「Fix-it」的建議。
EXC_BAD_ACCESS崩潰不像SIGABRT,將不會得到很明朗的錯誤消息。然而可以使用一個讓人看到曙光的調試工具:Zombies!死亡對象工具。打開這個項目的scheme editor,選擇Run 選項,然後選擇Diagnosics標簽。勾上Enable Zombie Objects選項。當這個zombie工具被啟用之後,即使這個對象被釋放了,這個對象的內存也不會被清理。所以,那塊內存將會被標記為「長生不死的」。假如你試著之後又去使用這塊內存,這個app能夠意識到你的錯誤操作,並且app將會拋出「messagesent to daellocated instance」錯誤並且終止運行。
在工程中加入NSZombieEnabled 環境變數,並設為啟用,則在 EXC_BAD_ACCESS 發生時,XCode 的 Console 會列印出問題描述中,設置方法:雙擊Executables 下的 可執行模組,在彈出窗口中,Variables to be set in the environment,添加 NSZombieEnabled,並設定為 YES,點擊選中復選框啟用此變數。
可以再加入 MallocStackLogging 來啟用malloc記錄,以獲得更多的提示來幫助定位問題。
在gdb窗口輸入 (格式: shell malloc_history <id> <address>) shellmalloc_history1436 0x5f7fcf0, 也可以在終端中去運行 就要去掉以上的shell 指令 如 malloc_history <id> <address>
應該僅當需要調試內存時,才設置上述環境變數。
注意一點:不應該一直啟用zombie objects。因為這個工具將永遠不會釋放內存,只是簡單標記一下這個內存是不死的,你最終將會在某個時候耗盡所有的內存,因為所有分配過的內存都不會得到重用。因此應該在排查內存相關的錯誤的時候才開啟zombie objects,其他時候應該關閉它。
在xcode4中,To edit environment variables, go to Menu Proct / Edit Scheme…, select the desired configuration (you probably want 'Run') from the left sidebar first and then click on the Arguments tab. Environment variables are configurable there.
6.運行一個IPhone程序時,彈出窗口說「程序運行失敗,預置描述文件已過期」 。 解決辦法是,在Xcode中, window-> Orgnazier -> 你的iphone ->刪除帶有紅*的該程序之前的Profile 。 然後從Xcode運行該程序.
7.真機編譯時報 Code Sign error: The identity doesn't match any valid certificate/private key pair in the default keychain
修改工程和Targets的get infouild 中的code signing identity為空
8.調試列印
CFShow(coreFoundationThingy) will print out a description of coreFoundationThingy to the console. Output looks something like: {value = w:1186.000000 h:687.000000 type = kAXValueCGSizeType}
If NSLog() is printing something out as an NSCFType, try CFShow().
9. 編譯時報 Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1,修改C/C++ Compiler Version為gcc4.2
10.this class is not key value coding-compliant for the key viewController
可能在創建了一個基於view的工程,而後把生成的viewcontroller刪除了,但是在.xib中還有對它的引用,在IB中直接用delete鍵刪除掉它就行了。
11.這台電腦上已經存在一個名為「embedded.mobileprovision」的預置文件,您是否要替換么?
http://blog.sina.com.cn/s/blog_6907b67f0100o2vw.html
12.真機調試時報failed to upload *.app
http://hi..com/%CB%E6%B7%E7_1989/blog/item/9649f49f805f05aec8eaf466.html
http://www.shouyanwang.org/thread-462-1-1.html
13.記的release時,先置delegate為nil。
一個節點不應該保留任何對不屬於它的節點的引用。
14.模擬器
將xcode升級到4.3.1以後發現,ipad的模擬器,沒有Home鍵了。Command+Shift+H就可以實現類似點擊Home鍵的效果了。