我正在尝试在iPhone Project上使用gcov 并遵循Apple的描述here,但它不起作用。
当我构建并配置项目时,会为每个目标文件创建.gcda文件。 但是没有执行的行被记录到.gcda文件中。 (CoverStory显示所有覆盖率均为0%)
我刚刚在模板项目中添加了一个简单的类,如下所示。
@interface SomeClass : NSObject
- (void)func1:(BOOL)flag;
@end
@implementation SomeClass
- (void)func1:(BOOL)flag {
if (flag) {
NSLog(@"flag is YES");
}
else {
NSLog(@"flag is NO");
}
}
@end
我分配了这个类并在application:didFinishLaunchingWithOptions中调用func1, 我预计会显示SomeClass的覆盖率(50%左右)。
我正在使用OSX 10.6.4,iPhone SDK 4.0和Xcode 3.2.3。 还需要更多配置吗?请指导。
更新2010/7/15:
我尝试了link @tonclon给我的这些提示,但它还没有奏效。 以下描述是我尝试过的。
GCC 4.0编译的Cocoa应用程序 在“Cocoa”应用程序的项目设置中,
它工作,.gcda文件是按预期生成的覆盖信息。 但是在使用SDK 4.0的iPhone项目中,我不能使用相同的配置 gcc 4.0无法在SDK 4.0(ex Blocks)
在google-tool-box中使用自定义gcov库 而不是在其他链接器标志中设置-lgcov, 我试过custom gcov library included in google-toolbox-for-mac, 但生成的.gcda文件显示覆盖率为0%。 (结果相同)
答案 0 :(得分:0)
有几件事:
请在此处查看gcov页面(http://code.google.com/p/google-toolbox-for-mac/w/list),看看它们是否有帮助。我有gcov使用Xcode 3.2.5和iOS4.2。