其他人报告没有能够generate code coverage with XCode 4,但我发现我不但无法从XCode 4内部完成,我无法做到它甚至可以在命令行中使用一个简单的玩具程序。我跟着给here和here的例子,害得我创建这个文件cov.c:Mac OS X Lion和XCode 4/llvm-g ++没有代码覆盖率 - 4.2
#include <stdio.h>
int main (void) {
int i;
for (i = 1; i < 10; i++) {
if (i % 3 == 0)
printf("%d is divisible by 3\n", i);
if (i % 11 == 0)
printf("%d is divisible by 11\n", i);
}
return 0;
}
然后我用,企图以下命令来生成代码覆盖率:
g++ -c -g -O0 --coverage -o $PWD/obj/cov.o $PWD/cov.c
g++ -g -O0 --coverage -o $PWD/bin/cov $PWD/obj/*.o
$PWD/bin/cov
唉, obj目录中不存在cov.gcno文件。事实上,我在这之后所拥有的唯一文件是: cov.c OBJ/cov.o 斌/ COV
而且,如果我nm bin/cov
型,我得到如下:
0000000100001048 S _NXArgc
0000000100001050 S _NXArgv
0000000100001060 S ___progname
0000000100000000 A __mh_execute_header
0000000100001058 S _environ
U _exit
0000000100000e40 T _main
U _printf
0000000100001000 s _pvars
U dyld_stub_binder
0000000100000e00 T start
这建议libgcov.a从未在联如果我更换
g++ -g -O0 --coverage -o $PWD/bin/cov $PWD/obj/*.o
:
g++ -g -O0 --coverage -o $PWD/bin/cov -lgcov $PWD/obj/*.o
我得到完全相同的结果。
的更多信息:
g++ --version
收率:“i686的-苹果darwin11-LLVM-G ++ - 4.2(GCC)4.2.1 (基于苹果公司建立5658)(LLVM建立2336.1.00 )“- 我也试过使用gcc(这是llvm-gcc)。
唉,我的系统上没有g ++ - 4.2。然而,有铿锵++,这似乎是伎俩。 – 2011-12-24 20:56:47