【问题标题】:How to add an alternative compiler to XCode 5如何向 XCode 5 添加替代编译器
【发布时间】:2014-06-18 12:20:30
【问题描述】:

我正在尝试使用 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如果你不想看,它只是表明'Build Options'下唯一的编译器选项是LLVM。

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

知道如何让 XCode 改用 nvcc 吗?

【问题讨论】:

  • Xcode 使用插件将编译器放在该下拉列表中。谷歌搜索表明已经为 nvcc 编写了一些插件,其中一些用于旧 Xcode 版本。它们都不是官方的,但你应该能够适应其中之一。
  • 这里是构建 GCC 插件的方法。可能会有所帮助。 stackoverflow.com/a/19442587/321772

标签: c++ cuda xcode5 thrust nvcc


【解决方案1】:

虽然 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

【讨论】:

    猜你喜欢
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多