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

解決編譯警告

發布時間: 2022-09-02 01:01:52

㈠ 在keil編譯時出現警告 什麼意思 怎麼解決

這是個警告,編譯是沒有問題的,能產生hex文件的,就是你有些函數或者變數聲明或者定義了,但是沒有使用!基本不影響使用的如果要不報這個警告的話就把沒用到的都刪除就好了

㈡ 如何消除間接呼叫 Method 在 Android Studio 中的編譯警告

如果有使用過 DI (Dependency Injection) Framework 像是 butterknife,或是 Bus 一類的 Framework 像是 Otto 或 EventBus,一定會撰寫出 Method 是沒有被自己開發的源代碼直接呼叫的。這時在 Android Studio 的即時編譯檢查就會出現警告:

Method 『...』 is never used

就像這篇文章里提到,警告的出現會形成一定程度上的困擾,最好是能夠消除掉,畢竟這是一個無法避免的寫法,但又不應該被看成是個問題。

照「調整 Android Studio 編譯檢查規則」中的方法把檢查規則整個取消掉,是個一勞永逸的方法。但是也把其可能的錯誤也抑制掉了,徒增程序質量上的風險,並非上策。

另外一個可行的選項是在方法上宣告 SuppressWarnings 的 Annotation,像是 @SuppressWarnings("unused")、@SuppressWarnings({"UnusedDeclaration"})、@SuppressWarnings({"UnusedParameters」})。跟前一個方案一樣,應該顯示的警告也同時被遮蔽掉了,不是最佳的方式。

所幸 Android Studio 也不是沒有提供對策,在有問題的源代碼上按下「alt+enter」,會跳出 Menu 並可以選擇 Suppress for methods annotated by 『...』 項目。以 greenrobot 的 EventBus 為例,所有以 org.greenrobot.eventbus.Subscribe 為 Annotation 的 Method 都不會再顯示警告,所以問題順利地解決了。

以上的解決方法應該已經很多人都知道了,只是還有一個衍生的問題。如果使用的 Framework 提供的 Annotation 不只一個,還是得要一個一個地重覆相同的動作,不能一次搞定嗎?

這時可以開啟「調整 Android Studio 編譯檢查規則」中提到的 Inspections 選項畫面,切換到「java->Declaration rendancy->Unused declaration」項目。畫面右方的 Options Frame 最下方有一個【Configure annotations...】的按鈕,點下去之後會再跳出另一個小視窗。接著就可以在視窗的最下方新增【Add Annotation Class】或【Add Annotations Pattern】,前一個是新增單一個 Class,另一個則是使用萬用字元來增加一整組的 Class。

以上說明的這些資訊都被存在 .idea/misc.xml 的文件中,打開後會看到類似以下的內容:

<component name="EntryPointsManager">
<entry_points version="2.0" />
<list size="1">
<item index="0" class="java.lang.String" itemvalue="org.greenrobot.eventbus.Subscribe" />
</list>
</component>
如果你有莫名的控制欲,想要凡事都掌握在手中,可以直接修改文件的內容,也會達到一樣的效果。

㈢ 用命令導入資料庫時出現創建的對象帶有編譯警告,終止導入

編譯警告一般是指存儲過程,視圖什麼的腳本出現問題,不知道你的導入時基於用戶的還是全庫的,你需要查看出問題的OBJECT,看看是報的什麼錯,有可能是基於DB_LINK的錯誤,也有可能是調用了其他用戶的表或視圖,而你這一次導入的時候遺漏了

㈣ C語言編譯警告,請問為什麼會報警,怎麼解決謝謝

有一個嚴重問題:n變數,所以int number[n];的聲明是不可行的,[]中規定必須是常量,或常量表達式。其餘就沒有再往下看了……

㈤ C語言編譯警告

void
main(void);函數被定義多次,這么明顯的錯誤肯定是其他.c文件定義了main函數了
另外你的這種寫法完全不符合c99啊
void
main(void)
應該寫成
int
main(void);或者
int
main(char
*argc,char*
argv[])

㈥ quartus II 全編譯出現嚴重警告

quartus II 全編譯出現嚴重警告按以下方式解決:

首先看命令 derive_clock_uncertainty 的幫助,再根據自己的問題在*.sdc文件中加入

set_clock_uncertainty-setup -rise_from Clock -rise_to Clock 0.150

set_clock_uncertainty-hold -rise_from Clock -rise_to Clock 0.150

保存,重新編譯。嚴重警告就消失了。

㈦ C語言:codeblocks編譯警告,求解決!!!

去掉p=search(&stu,k);中的&。

㈧ 怎樣消除編譯器關於 C++11 的警告

1. 預處理首先源代碼文件(.c/.cpp)和相關頭文件(.h/.hpp)被預處理器cpp預編譯成.i文件(C++為.ii)。預處理命令為:gcc –E hello.c –o hello.i預編譯過程主要處理那些源代碼中以#開始的預編譯指令,主要處理規則如下:u 將所有的#define刪除,並且展開所有的宏定義;u 處理所有條件編譯指令,如#if,#ifdef等;u 處理#include預編譯指令,將被包含的文件插入到該預編譯指令的位置。該過程遞歸進行,及被包含的文件可能還包含其他文件。u 刪除所有的注釋//和 /**/;u 添加行號和文件標識,如#2 「hello.c」 2,以便於編譯時編譯器產生調試用的行號信息及用於編譯時產生編譯錯誤或警告時能夠顯示行號信息;u 保留所有的#pragma編譯器指令,因為編譯器須要使用它們。2. 編譯編譯過程就是把預處理完的文件進行一系列詞法分析,語法分析,語義分析及優化後生成相應的匯編代碼文件(.s)。編譯的命令為:gcc –S hello.i –o hello.s或者從源文件直接輸出匯編代碼文件:gcc –S hello.c –o hello.s現在版本的GCC把預編譯和編譯兩個步驟合並成一個步驟,由程序cc1來完成(C++為cc1plus)。3. 匯編匯編就是將匯編代碼轉變成機器可以執行的命令,生成目標文件(.o),匯編器as根據匯編指令和機器指令的對照表一一翻譯即可完成。匯編的命令為:gcc –c hello.s –o hello.o或者從源文件直接輸出目標文件:gcc –c hello.c –o hello.o4. 鏈接鏈接就是鏈接器ld將各個目標文件組裝在一起,解決符號依賴,庫依賴關系,並生成可執行文件。鏈接的命令為:ld –static crt1.o crti.o crtbeginT.o hello.o –start-group –lgcc –lgcc_eh –lc-end-group crtend.o crtn.o一般我們使用一條命令就可以完成上述4個步驟:gcc hello.c實際上gcc只是一些其它程序的包裝,它會根據不同參數去調用預編譯編譯程序cc1、匯編器as、鏈接器ld。

㈨ 請教gcc編譯下的幾個警告該怎麼去除

C 語言源程序中的錯誤分為幾類,其中有:必須要修改的錯誤(例如:語法錯誤),這類錯誤如果不進行修改,那麼源程序就無法編譯通過和運行;另外還有就是:警告錯誤(例如:對某個變數沒有賦初值就使用它),該類錯誤就是:編譯器能夠讓你的源程序通過,但是你在運行源程序時,得到的運行結果卻未必是正確的(例如:編寫一個累加器的程序,如果不對總和進行清零,那麼每運行一次,結果可能就會是隨機的)。所以說,如果 gcc 編譯器下提出了警告錯誤,你就必須要仔細閱讀源程序,找出其相對應的BUG來,這樣才能夠確保你的程序運行結果是正確的。

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

    熱點內容
    騰訊雲伺服器購買網址 發布:2025-02-11 21:37:46 瀏覽:60
    安卓電話視頻怎麼投電視上 發布:2025-02-11 21:32:27 瀏覽:18
    易簽到源碼 發布:2025-02-11 21:31:03 瀏覽:498
    編程班會 發布:2025-02-11 21:27:19 瀏覽:738
    ubuntu編譯fortran 發布:2025-02-11 21:21:59 瀏覽:201
    雲伺服器寬頻單位 發布:2025-02-11 20:48:11 瀏覽:538
    安卓數據線公頭是哪個 發布:2025-02-11 20:45:42 瀏覽:812
    網址原始密碼是什麼 發布:2025-02-11 20:33:52 瀏覽:72
    怎麼創建伺服器我的世界網易 發布:2025-02-11 20:18:36 瀏覽:467
    伺服器電腦與客戶端的連接 發布:2025-02-11 20:18:32 瀏覽:36