2010-10-04 28 views
3

我正在使用GCC版本3.3.6。當我使用-fprofile-arcs-ftest-coverage來測試我的目標文件時,會創建相應的*.bb*.bbg文件。GCov和GCC,* .da文件未創建

然後將目標文件鏈接到一起形成靜態庫libfoo.a,其中:
ar rcs libfoo.a foo1.o foo2.o

最後,一系列的靜態庫鏈接在一起以創建可執行文件我用:
gcc -fprofile-arcs -o foo.o <static libraries linked all>

現在,當我運行的圖像,沒有得到創建*·DA文件。我錯過了一個步驟嗎?有沒有人有任何其他建議?

謝謝。

回答

3

可執行需要與gcov的庫鏈接:

gcc -fprofile-arcs -o foo.o <static libraries linked all> -lgcov 

EDIT:從GCC 4.1.2開始,--coverage選項可以用作同義詞-fprofile-arcs -ftest-coverage(編譯時)和-lgcov (鏈接時)。

另外,值得注意的是這些文件是在編譯的同一目錄中創建的。該目錄應可從執行環境中獲得。最近版本的gcc(4-1)引入了環境變量來調整目標目錄:GCOV_PREFIX和GCOV_PREFIX_STRIP,請參閱gcc doc的cross-profiling section