【发布时间】:2013-09-26 02:18:41
【问题描述】:
我正在使用 Xcode 5。我有一个 OS X 框架/iOS 静态库项目,其中混合了 ObjC/C++ 代码和语言方言设置为 C11/C++11。
我添加了一个使用 XCTest 的 Cocoa 单元测试包 目标,我为 iOS 静态库和 OS X 框架创建了一个。
这是我拥有的代码和我在两者中遇到的错误:
-(void) testExample
{
NSObject* world = [NSObject new];
world = nil; <--- Ambiguous expansion of macro 'NULL'
}
运行 iOS 测试,编译器告诉我它正在使用 stddef.h 中的 NULL 定义(第 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 测试未运行是由于使用 OS X“Cocoa 单元测试包”创建了 iOS 单元测试包。 /我一巴掌
但 OS X 测试问题仍然存在。但我有一种预感,在 OS X 10.9(Mavericks)上,这可能与缺少 10.9 SDK(Base SDK 设置为 10.8)有关。
【问题讨论】:
-
我在
.m文件中遇到了同样的问题,但在更改.mm后警告消失了
标签: objective-c xcode unit-testing xcode5 c-preprocessor