2015-04-05 24 views
3

我警告幾百像這樣在構建與gcc注:在宏觀擴張「A_MACRO」

foo.c:2690:5: note: in expansion of macro ‘PUT_UINT32’ 
    PUT_UINT32(state, digest, 0); 

我怎樣才能擺脫他們的?

-w還隱藏了,我還是想看到

+4

附註:隱藏警告通常是處理它們的不好方法。他們在那裏是有原因的。 – 2015-04-05 09:40:10

+0

你確定你正在編譯'gcc'嗎?在OSX中,'gcc'是'clang'上的薄包裝。 – chqrlie 2015-04-05 09:41:04

+0

事實上,啓用大部分警告並修復代碼是明智之舉。 ' - 牆 - 錯誤'是你的朋友。 – chqrlie 2015-04-05 09:43:29

回答

5

我假設你正在使用clang警告:當clang檢測到錯誤或從宏擴展代碼的警告,它輸出一行到每一個宏,其擴張導致到有問題的代碼。修復最終代碼中的錯誤和警告,這些消息將消失。

+0

嗯,我剛剛意識到你的回答,這不僅僅是一個「筆記」。有一個臭的事情背後,好消息是,我剛剛發現它 – nowox 2015-04-05 09:41:56

+0

@coin:請分享您的發現... – chqrlie 2015-04-05 09:42:41

+0

我想提取和構建vim來源的加密部分,以瞭解它。我只想建立這些文件。由於多個依賴關係,花了一些時間。在這個過程中,我犯了一個錯誤。我用'unsigned char *'替換了一個'unsigned char'。我沒有太多的警告,沒有錯誤和關於宏觀擴展的一百個「註釋」。隨着更正,我擺脫了這條消息。 – nowox 2015-04-05 09:47:18