如果使用GNUStep编译ObjC,一个经常遇到的选项是-fconstant-string-class. 它的作用是指定常量字符串所使用的class类型。为什么常量字符串要指定类?正常GCC解析C/C++常量字符串就是char *类型,但在ObjC里面,@"hello"这种字符串并不是char*类型,而是NSConstantString类型,需要用这个选项指示编译器,不要用错误的char *类型,而用NSConstantString类型。
另外,-fconstant-string-class可以指定自定义常量字符串的类型,具体可参见:Constant string objects (Using the GNU Compiler Collection (GCC)).
