我想强制Xcode使用自定义编译器(来自src的'clang-llvm'构建),所以我可以使用clang插件。我的Xcode版本是7.3.1。
答案 0 :(得分:6)
人们说可以使用自定义工具链。我没有对它们进行研究,因为更简单的解决方案对我来说效果很好:
也可以通过设置适当的"构建设置直接运行前端插件" Xcode。 (有几种方法,你可以在命令行上设置它们:例如:xcodebuild build FOO = bla。)这里有一些我认为有用的注入C标志的构建设置:
OTHER_CFLAGS,OTHER_CPLUSPLUSFLAGS或替换编译器和链接器:
CC,CPLUSPLUS,LD,LDPLUSPLUS,LIBTOOL
同样的方法可以控制"分析"行动:CLANG_ANALYZER_EXEC,CLANG_ANALYZER_OTHER_FLAGS
免责声明:其中一些构建设置未记录(afaik)。使用风险自负。
(取自[cfe-dev] Compile/refactor iOS Xcode projects)
对我而言,在Xcode项目的Build Settings中定义以下用户定义的设置就足够了:
XSSFWorkbook wb = new XSSFWorkbook(fis);
wb.setMissingCellPolicy(MissingCellPolicy.CREATE_NULL_AS_BLANK);
如果您使用CMake ,自动注入编译器的方法是使用
CC=my-c-compiler
CXX=my-cxx-compiler
LIBTOOL=my-linker-for-static-libraries
答案 1 :(得分:3)
Xcode有一个模糊的功能,它支持"alternative toolchains"。例如,Swift.org为从当前源构建的Swift提供可安装的工具链。
不幸的是,虽然Apple的文档描述了如何安装和使用此类替代工具链,但它没有描述如何创建它们。 Swift源代码库中有脚本构建了一个工具链,您可以查看它们以了解它是如何完成的。他们在https://github.com/apple/swift/tree/master/utils。从build-toolchain开始,调用build-script并从那里开始。
答案 2 :(得分:2)
几年前,我写过一篇文章,完全解决了您所描述的问题:Creating and using Clang plugin with Xcode
要启用自定义clang,您需要实际修补Xcode.app
本身的内部,这在技术上是可行的但是:
所以一般来说它并没有真正扩展,所以要小心:)
答案 3 :(得分:1)
从project setting
转到build setting
并选择目标。然后从顶部栏中的All
旁边选择Basic
。然后在构建选项下,您可以看到编译器选项。
请参阅下面的屏幕截图
更新:
我认为您应该参考Using C and C++ in an iOS App with Objective-C++和this tutorial。
答案 4 :(得分:1)
在项目或目标构建设置下,添加用户定义的设置
CC=/path/to/cc
CXX=/path/to/c++
如果您有一个要调用的编译器或链接器,或者要调出决定要动态调用的蹦床,这将很有用。
使用Clang LLVM 1.0.xcplugin
作为模板(位于Xcode.app
插件文件夹中),您可以修改plist以指向您自己的备用编译器和链接器。
此OLLVM on iOS tutorial贯穿其中。