Clang 类别中的协议问题(叮当声)

Clang 类别中的协议问题(叮当声),clang,llvm,objective-c-runtime,objective-c-category,gnustep,Clang,Llvm,Objective C Runtime,Objective C Category,Gnustep,我对Objective-C中的clang编译器的类别中的协议有一些问题。 我认为clang忽略任何协议,如果这是在类别中指定的,就像下面的示例代码一样。 如果将行“@interface MyClass()”替换为“@interface MyClass()”,则对象文件是完全相同的(逐字节) 但如果此代码构建在OS X上,我将获得下一个输出: $ clang -o main main.m -lobjc $ ./main Protocol1 is conformed MyProtocol is co

我对Objective-C中的clang编译器的类别中的协议有一些问题。 我认为clang忽略任何协议,如果这是在类别中指定的,就像下面的示例代码一样。 如果将行“
@interface MyClass()
”替换为“
@interface MyClass()
”,则对象文件是完全相同的(逐字节)

但如果此代码构建在OS X上,我将获得下一个输出:

$ clang -o main main.m -lobjc
$ ./main
Protocol1 is conformed
MyProtocol is conformed
这个问题与选项-fobjc runtime=gnustep和-fobjc runtime=macosx有关,但我不知道为什么

如何使用gnustep环境解决此问题?我能做什么

$ clang-3.5 -o main main.m -I `gnustep-config --variable=GNUSTEP_SYSTEM_HEADERS` -L `gnustep-config --variable=GNUSTEP_SYSTEM_LIBRARIES` -lgnustep-base -fconstant-string-class=NSConstantString -D_NATIVE_OBJC_EXCEPTIONS -lobjc
$ ./main
Protocol1 is conformed
$ clang -o main main.m -lobjc
$ ./main
Protocol1 is conformed
MyProtocol is conformed