2010-08-02 182 views
1

我正在使用-fprofile-arcs -ftest-coverage標誌在32位機器上交叉編譯我的可執行文件以進行覆蓋。並且由此產生的可執行文件在64位的目標機器上運行。gcov不會生成覆蓋率文件

當我運行可執行文件時,它不會生成.bb .bbg和.da文件。什麼可能是它的原因。

+0

我們至少可以看到您用於編譯/鏈接的命令行嗎? – Dummy00001 2010-08-02 12:52:33

+0

當我在不同的機器上運行exe文件時,gcov正在創建完整的目錄層次結構,其中的目標文件位於主機中,而我並不知道gcda文件位於此目錄中。 – Poorna 2010-08-05 18:14:34

+0

1)我沒有得到你的評論,但我非常感謝你的命令行。 2)你可以嘗試一下沒有交叉編譯? – 2011-03-22 20:45:45

回答

1

最可能的原因是數據文件是在與編譯相同的目錄中生成的,可能無法在執行測試的目標平臺上訪問或不可寫入。

由於gcc版本不錯,可以使用環境變量GCOV_PREFIX和GCOV_PREFIX_STRIP來覆蓋默認目錄。

+0

你是我的英雄。這樣一個明顯的---但容易忽視---解決方案。 – Richard 2012-03-07 21:55:53

相關問題