當前位置:首頁 » 編程軟體 » xcode編譯警告

xcode編譯警告

發布時間: 2022-07-06 03:23:46

A. Xcode 在用gcc編譯的時候出現警告

代碼的運行編譯是從上往下的,出現這個警告的原因是你寫的某個函數裡面調用了另一個函數,而這個另一個函數是第一次出現,系統辨認不出,當然你是寫在了下面。
所以解決這個問題有兩個方法:1在代碼最上端聲明所有函數。 2把該函數內調用的函數寫到該函數的上面。

B. 怎麼去掉Xcode工程中的某種類型的警告

一、最直接、最一勞永逸、最安全的方式,直接找到警告的那段代碼,改為不警告。這個方式最安全。
可是它有一個問題,就是,當我們很多文件都有這種類型的警告的時候,我們就需要改動很多很多的源碼了, 對於不是我們寫的源碼,有可能隨時會更新的,我們這種方式,顯然就不太可取了。
二、 使用編譯器提供的宏來操作,這個方式在我們的工程中會大量的看到:
1#pragma clang diagnostic push
2#pragma clang diagnostic ignored"-Wdeprecated-declarations"
3 //寫在這個中間的代碼,都不會被編譯器提示-Wdeprecated-declarations類型的警告
4dispatch_queue_tcurrentQueue =dispatch_get_current_queue();
5#pragma clang diagnostic pop

C. xcode總是出現黃色警告問題

有兩類東西,得分情況看待。
一類真的是警告,只是提醒你一下有可能是錯誤。比如某個變數定義了卻沒有使用,這是常見的情況。還有什麼xib裡面字體不對啥的,這種我經常無視...
另一類真的會要命的,一跑就死,比如調用了沒有定義過的方法。
總之這個就是黃燈,你得自己人工檢查一下是不是真的會有問題。如果沒有把握,就放過去吧,反正等到程序爆了再調試也不遲。但是如果能夠一眼看出確實哪裡出了毛病,豈不是節省了很多調試的時間?
要不這樣,編譯的時候無視,然後跑的時候發現爆了,就回過頭來檢查一下有沒有黃燈。

D. 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鍵的效果了。

    E. xcode 6.2 helloworld編譯報錯,求助

    一般可以先嘗試 clean,復雜點的可能要刪除 cache。另外有可能是32位和64位差異造成的警告,而你又開啟了把警告轉為錯誤的編譯選項。不過最好還是把錯誤信息放上來看看。 希望我的回答對你有幫助。

    F. 您好!我想請教一下,Xcode編譯時報錯提示找不到某個文件

    如果只是黃色嘆號的waring,我猜是你的項目啟用了 Svn或者git,文件被納入版本管理,而你手工刪掉文件而不是在Xcode里刪掉,則沒有從版本管理器中把文件刪掉,於是Xcode警告你版本管理工具沒找到這些文件了。如果是這樣,手工在命令行里敲下類似 svn delete <刪掉的文件名> 就行了。如果你有用 svn/git 客戶端則更方便。

    G. Xcode無法編譯,一運行就報錯,請問如何解決

    1、XCode默認使用與CPU核數相同的線程來進行編譯,但由於編譯過程中的IO操作往往比CPU運算要多,因此適當的提升線程數可以在一定程度上加快編譯速度。
    2. 將Debug Information Format改為DWARF 在工程對應Target的Build Settings中,找到Debug Information Format這一項,將Debug時的DWARF with dSYM file改為DWARF。 這一項設置的是是否將調試信息加入到可執行文件中,改為DWARF後,如果程序崩潰,將無法輸出崩潰位置對應的函數堆棧,但由於Debug模式下可以在XCode中查看調試信息,所以改為DWARF影響並不大。這一項更改完之後,可以大幅提升編譯速度。
    3. 將Build Active Architecture Only改為Yes 在工程對應Target的Build Settings中,找到Build Active Architecture Only這一項,將Debug時的No改為Yes。 這一項設置的是是否僅編譯當前架構的版本,如果為No,會編譯所有架構的版本。需要注意的是,此選項在Release模式下必須為Yes,否則發布的ipa在部分設備上將不能運行。這一項更改完之後,可以顯著提高編譯速度。

    H. -Wno-deprecated-declarations編譯選項什麼意思

    這個編譯選項是用來關閉Xcode中關於廢棄API的警告
    比如 你代碼中使用了某個已經被廢棄的API 這是Xcode會出現一個警告
    這時你就可以通過這個編譯選項 關閉掉這個警告。

    I. Xcode編譯警告

    你可以在otherlink 中加入 -Wl,-no_compact_unwind 去掉該警告,
    根據蘋果的解釋,這個是由於某些地方 c/c++/oc/oc++混用會造成編譯警告。一般沒有什麼傷害。

    J. xcode 編譯過程中怎麼忽略警告

    你可以在otherlink 中加入 -Wl,-no_compact_unwind 去掉該警告, 根據蘋果的解釋,這個是由於某些地方 c/c++/oc/oc++混用會造成編譯警告。一般沒有什麼傷害。

    熱點內容
    如何改變vivo手機賬戶密碼 發布:2024-05-19 10:56:07 瀏覽:376
    sql的length函數 發布:2024-05-19 10:55:15 瀏覽:545
    資料庫管理系統設計報告 發布:2024-05-19 10:49:50 瀏覽:684
    linux怎麼將驅動編譯進內核 發布:2024-05-19 10:23:47 瀏覽:768
    c語言讀程序題 發布:2024-05-19 10:13:52 瀏覽:675
    新的安卓手機怎麼樣下載微信 發布:2024-05-19 10:05:06 瀏覽:879
    加9的演算法 發布:2024-05-19 10:04:15 瀏覽:264
    新名圖配置怎麼樣 發布:2024-05-19 09:31:30 瀏覽:95
    php獲取子節點 發布:2024-05-19 09:21:18 瀏覽:160
    php生成html 發布:2024-05-19 09:20:24 瀏覽:795