2013-08-28 59 views
1

我使用Eclipse Juno和GCC編譯器進行C代碼。我正在嘗試使用gcno插件來獲取代碼覆蓋率。沒有找到GCOV數據

當然我向編譯器和鏈接器標誌添加了-ftest-coverage -fprofile-arcs。 但是,當我點擊分析工具對代碼覆蓋率我得到的錯誤如下圖所示:

「重新編譯C中的至少一個/ C++源文件與 ‘-fprofile弧’和」 -ftest覆蓋-lgcov「選項,並與您聯繫可執行 ‘’如果你編譯並在單個GCC 通話鏈接,你可以使用gcc的‘--coverage’選項」。

請我需要這個錯誤的幫助。

+0

已檢查.gcno文件在編譯後是否生成了? –

回答

1

爲了使用gcov代碼覆蓋率結果,您不僅要使用您提到的編譯器和鏈接器標誌進行編譯,還必須運行單元測試或運行程序來收集數據。 Gcov會在您的代碼中的點數達到時收集數據。如果您不運行該程序,則不會生成任何數據。

+0

正確。運行會生成.gcno和.gcda文件。請注意,覆蓋率是累積的。如果每行執行一行並且運行兩次,則它的計數將是兩次。刪除這些文件以重置計數器。請注意,由Eclipse生成的makefile將在您「make clean」時不**刪除它們 – Mawg