2010-05-11 36 views
1

我試圖爲我的Linux機器編譯無線網卡驅動程序,並且遇到了Make命令的問題。在編譯過程中,我通常會看到一些正在編譯的C文件的警告;儘管警告這些文件仍然能夠被編譯爲一個目標文件。出現錯誤 - gcc編譯器警告能否阻止C文件被編譯到目標文件中?

當製作過程涉及到一個文件名爲rtmp_wext.c然而,編譯器會生成大量的警告,然後整個過程製作停止並返回錯誤1的退出狀態,即make: *** [rtmp_wext.o] Error 1。通常我會看到C文件出現編譯停止錯誤。這是第一次看起來編譯器警告正在阻止文件被轉換成目標文件;這是可能的還是其他原因造成不成功的編譯?

+1

我會將輸出保存到一個文件(使用屏幕,腳本或簡單的'ol重定向),然後grep它。錯過一堆警告中的錯誤可能很容易。 – derobert 2010-05-11 20:45:24

+1

有沒有機會用'-jN'標誌編譯,所以警告實際上是來自同一時間發生的不同工作? – Cascabel 2010-05-11 20:48:05

+0

我將輸出重定向到一個文件,並且唯一一個包含錯誤詞的行是我發佈的。所有其他有問題的行都有警告標籤。編譯時沒有使用-jN標誌。 – 2010-05-11 20:59:42

回答

3

如果gcc正在通過-Werror選項,它會;它會導致警告被視爲錯誤,但它們也會被重新標記爲「錯誤」而不是「警告」,所以如果您看到「警告」,那不是。這可能是其他命令make正在運行;你可以嘗試像在冗長模式下運行它,或者只是檢查Makefile以查看它正在執行的命令

0

可以通過在命令的開始處(在選項卡之後)放置' - '來告訴Make忽略錯誤, 。如果這是你自己的代碼,我建議你不要忽略症狀,但我猜你不想調試這段代碼。

你說你可以用警告森林編譯rtmp_wext.o。我同意德羅伯特的評論;那裏可能會有錯誤。如果存在,則不能保證rtmp_wext.o實際上能夠正常工作,並且不管它是否有效,都應該找到錯誤消息並告訴誰寫了驅動程序。