Я использую Xcode 5. У меня есть проект статической библиотеки OS X Framework/iOS со смешанным кодом ObjC/С++ и языковыми диалектами, установленными на C11/С++ 11.
Я добавил цель Cocoa Unit Testing Bundle, которая использует XCTest. Я создал ее как для статической библиотеки iOS, так и для платформы OS X.
Это код, который у меня есть, и ошибка, которую я получаю в обоих:
-(void) testExample
{
NSObject* world = [NSObject new];
world = nil; <--- Ambiguous expansion of macro 'NULL'
}
Запустив тест iOS, компилятор сообщает мне, что он использует определение NULL из stddef.h (строка 74, ((void*)0)
), а другое определение находится в usr/include/stdlib.h (строка 115, __DARWIN_NULL
).
Ошибка теста OS X указывает на usr/include/MacTypes.h (строка 90, __DARWIN_NULL
), на этот раз альтернатива находится в stddef.h (строка 74, ((void*)0)
).
У Google нет ничего по этому вопросу. Я такой: "Ну, я думаю, это только один из этих дней...".
Любые подсказки относительно того, что может происходить здесь, и как это исправить?
ОБНОВЛЕНИЕ:
Тесты iOS не выполнялись из-за создания пакета модульных тестов iOS с пакетом модульного тестирования OS X «Cocoa Unit Testing Bundle». /мне шлепнуть
Однако проблема с тестированием OS X сохраняется. Но у меня есть подозрение, что в OS X 10.9 (Mavericks) это может быть связано с отсутствующим SDK 10.9 (базовый SDK установлен на 10.8).
.m
, но предупреждение исчезает после изменений в.mm
- person Bryan Chen   schedule 27.09.2013