有没有什么已知的方法可以让Xcode与GCC一起工作,而不是clang,或者这只是一个白日梦,我应该为这样的项目使用不同的IDE?
我使用的是Xcode7.3beta和GCC 5.3.0。
发布于 2016-06-01 05:06:57
我已经在这里更新了GCC 5.3的插件:
https://github.com/JDeanThomas/xcode-gcc
您可以通过显示插件的内容并在/GCC 5.3.xcplugin/ contents /Resources中编辑GCC 5.3.xcspec来更改默认设置
将GCC 5.3插件添加到: /Applications/Xcode.app/Contents/Plugins/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/
打开Xcode并打开/创建一个项目。选择项目,在Build Settings > Build Options > Compiler for C/C++/Objective-C下,您应该会看到选择GCC 5.3的选项。
我遇到的一个问题是:你需要编辑:
/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/Clang LLVM 1.0.xcplugin/Contents/Resources中的"Clang LLVM 1.0.xcplugin“。
在“Name=”CLANG_CXX_LIBRARY“”下,将“CommandLineArgs”和“AdditionalLinkerArgs”从"-stdlib=$( value )“更改为"-std=$( value )”,这样当您输入自己的值时,它会将-std=传递给计算机(GCC的标准),而不是-stdlib (Clang的标准)。您必须选择一个值(例如:"c++98","gnu++98","c++0x","gnu++0x","c++14",“gnu++14”),否则它将使用“编译器默认值”,它使用-stdlib标志。您可以在同一条目中编辑“编译器默认”设置,但是如果您尝试在编译中使用Clang,它将使用-std而不是-stdlib,正如Clang所期望的那样。
在上面的条目“Name=”CLANG_CXX_LANGUAGE_STANDARD“”中的“CommandLineArgs”下,您还应该将"gnu++14“=( "-std=gnu++1y”);更改为"gnu++14“=(”-std=gnu++14“);。gnu++1y已经折旧,gnu++14 (带有GNU扩展的c++14)现在是默认的(从GCC 6.1开始)。
进行上述更改后,我只需要输入gnu++14作为目标,并在build Setings > User-Defined > CLANG_CXX_LIBRARY下进行构建,除非我需要一个较旧的标准(即c++11)来实现兼容性。如果我需要使用Clang,那么我只需将设置留空,它将恢复为使用gnu++14的-stdlib (Clangs默认设置)
如果你想备份你的副本,并将修改后的副本放入其中,我会在上面的github库中添加一个带有更改的Clang插件副本。
有关GCC设置的更多信息,请参阅此处:
https://stackoverflow.com/questions/35300064
复制相似问题