Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 如果不是';这是胡说八道_Xcode_Macos_Cocoa_Gcc_Xcode4 - Fatal编程技术网

Xcode 如果不是';这是胡说八道

Xcode 如果不是';这是胡说八道,xcode,macos,cocoa,gcc,xcode4,Xcode,Macos,Cocoa,Gcc,Xcode4,我在MacOSX10.6上编译了GCC4.6.2,因为Xcode4.2没有附带GCC。我还没有让它在Xcode中完全工作,因为Xcode坚持将-fconstant cfstrings参数传递给GCC,而我似乎无法禁用它。我已经在我的custom.xcplugin中编辑掉了大多数苹果特有的东西,但是没有找到-fconstant cfstrings选项,所以我无法删除它!此外,使用@创建字符串文字无法正常工作(字符串似乎分配不正确)。解决方法是使用CFSTR()宏,并将其强制转换为NSString*

我在MacOSX10.6上编译了GCC4.6.2,因为Xcode4.2没有附带GCC。我还没有让它在Xcode中完全工作,因为Xcode坚持将-fconstant cfstrings参数传递给GCC,而我似乎无法禁用它。我已经在我的custom.xcplugin中编辑掉了大多数苹果特有的东西,但是没有找到-fconstant cfstrings选项,所以我无法删除它!此外,使用@创建字符串文字无法正常工作(字符串似乎分配不正确)。解决方法是使用CFSTR()宏,并将其强制转换为NSString*以避免编译器警告


我想做的是找到一种方法,将所有@“”字符串保留在代码中,而不必用CFSTR()替换它们。GCC文档讨论了中的头文件,它可能负责执行此操作,但我担心它被CFString.h覆盖。如果有人知道如何解决这个问题,我会非常感谢你的帮助

Xcode很难与非苹果批准的编译器一起使用。它应该与GCC4.2.1LLVM-GCC以及Clang3.0一起提供。您需要4.6.2(或默认clang以外的编译器)有什么具体原因吗?

我所读的所有内容都为GCC提供了性能优势,而且我喜欢在不同平台上保持脚本/生成文件的一致性,而不必使用苹果特定的选项。坦白地说,我已经在这上面花了太多时间了,我现在不能就这样放弃了-在这种情况下,我建议不要使用Xcode。我是根据经验说的:我试着做和你完全一样的事情,但没能让它起作用。最后,我在Xcode中编辑文件,但在终端中编辑它们。问题在于苹果工具的集成度如何。如果你真的想做Objective-C编程,那就太棒了,如果你想做别的事情,那就太可怕了。这就是我现在要做的。您是如何解决-fconstant cfstrings问题的?哈哈哈,我刚刚尝试使用GCC4.6(.2)的副本重新创建您的问题。我甚至不能做到这一点——我的编译器仍然在抱怨Obj-C语法。我不知道你想和Obj-C合作(我错过了你问题上的可可标签)。虽然GCC中的通用代码生成更好,但苹果的Clang/LLVM-GCC具有高度优化的
objc\u msgSend
例程。顺便说一句,这份文件能帮你吗?是的,我读过,但我认为苹果的标题(CFString.h?)覆盖了这一点。我试着把它包括在我的Objective-C头球中,但没有任何区别。我能够让GCC很好地编译Obj-C,并使用ibtool编译XIB。一切正常,只是每次需要创建字符串文字时,我都需要使用CFSTR()宏(在CFString.h中定义)。通过-fconstant cfstrings开关可以启用一个内置的,我认为这是苹果GCC4.2特有的。你可以在CFString.h中看到我在说什么。我也不能使用含有大量@的旧代码。