如何向XCode 5添加替代编译器

时间:2014-05-01 22:17:03

标签: c++ cuda xcode5 thrust nvcc

我正在尝试将我用于CUDA / Thrust的论文的模拟代码并行化。 CUDA / Thrust需要使用nvcc编译器。编写模拟的C ++代码保存在XCode项目中,我的研究小组使用XCode功能跟踪更改并与其他代码进行交互,因此在其外部工作会非常不方便。

不幸的是,虽然我已经成功安装了CUDA 6.0,包括nvcc编译器,但我找不到如何让XCode选择nvcc而不是默认的编译器。它似乎不是一个选项(见截图)。

我显然缺乏发布图片的声誉,但这里是Dropbox中的链接。 https://dl.dropboxusercontent.com/u/10738291/XCode%20Screen%20Shot.png如果您不想查看,它只显示“构建选项”下的唯一编译器选项是LLVM。

入门指南(http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-mac-os-x/#compiler-verification)仅说明在使用nvcc时要调用的编译器选项,而不是如何强制使用nvcc。

知道如何让XCode改为使用nvcc吗?

1 个答案:

答案 0 :(得分:3)

虽然Xcode有一个插件机制,但它没有公开记录,并且它在Xcode的点发行版之间发生了变化(例如从Xcode 5.0到5.1)。你很可能无法使用它,即使你弄明白了,也不想使用它。

相反,您应该做的是添加“运行脚本”构建阶段,或者更可能是“构建规则”。使用“运行脚本”构建阶段,您可以运行所需的任何命令行脚本。但是使用“构建规则”,您可以添加命令来解析特定的文件类型,因此将使用您的编译器构建该类型的所有文件。

因此,几个月前,当我尝试学习Haskell时,我为运行ghc(Haskell编译器)的* .hs文件添加了构建规则。您的构建规则的脚本将如下所示:

#!/bin/sh
ghc -c -O -odir ${DERIVED_FILE_DIR} ${SCRIPT_INPUT_FILE}

ghc -c -O -odir替换为您的编译器以及您需要的任何参数。