Я пытаюсь использовать gcov в iPhone Project и следую инструкции Apple, описанной здесь , но это не работает.
Когда я собираю и запускаю настроенный проект, файл .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
Я выделил этот класс и вызвал func1 в приложении: didFinishLaunchingWithOptions, и яожидается, что покрытие SomeClass будет показано (около 50%).
Я использую OSX 10.6.4, iPhone SDK 4.0 и Xcode 3.2.3.Еще несколько конфигураций нужны?Пожалуйста, руководство.
ОБНОВЛЕНИЕ 2010/7/15:
Я попробовал эти подсказки в ссылке , которую дал @tonclon, но она пока не работала.В следующем описании я попробовал.
Приложение какао, скомпилированное GCC 4.0 В настройках проекта приложения "Какао"
- установите GCC_INSTRUMENT_PROGRAM_FLOW_ARCS на YES
- установить для GCC_GENERATE_TEST_COVERAGE_FILES значение YES
- установить для флага другого компоновщика значение -lgcov
- установить для версии компилятора C / C ++ значение 4,0
сработало, .gcdaфайлы были сгенерированы с информацией о покрытии, как и ожидалось.В проекте iPhone с SDK 4.0, однако, я не могу использовать ту же конфигурацию, потому что gcc 4.0 не может скомпилировать некоторый синтаксис в SDK 4.0 (бывшие блоки)
с использованием пользовательской библиотеки gcov в Google-tool-box Вместо установки -lgcov в Other Linker Flag я попытался пользовательская библиотека gcov, включенная в google-toolbox-for-mac , но сгенерированные файлы .gcda показывают, что охват составляет 0%.(тот же результат)
Подскажите, пожалуйста, что мне делать дальше?Любые предложения приветствуются.