8

現在、MacOS 10.9 で Cmake を使用して Cuda プロジェクトを構築しようとしています。私の C および C++ コンパイラは gcc ですが、Mavericks gcc および g++ が clang にリンクしているため、CUDA ではサポートされていないようです。

実際の gcc を使用する、または「dumpspecs」なしで clang を動作させるための良い解決策を見つけた人はいますか?

4

6 に答える 6

4

これは、Eugene によって提供された回答の拡張です。

Mac OSX 10.9 用の CUDA ツールキットのダウンロードがCUDA ダウンロード ページに投稿されました。

10.9 で XCode 5 をサポートし、参考までに gcc の代わりに自動的に clang を使用します。

10.8 で XCode 5 を使用している場合は、リリース ノートを参照してください。

· Mac OS X 10.8 で、コマンドライン ツールを含む XCode 5 をインストールすると、gcc コンパイラが clang に置き換えられます。--ccbin /usr/bin/clang オプションを使用すると、コマンドラインから nvcc で正常にコンパイルを続行できます。これにより、gcc の代わりに clang コンパイラを使用して、渡されたホスト コードをコンパイルするよう nvcc に指示されます。ただし、このソリューションは、NSight Eclipse Edition でビルドする場合には機能しません。コマンドラインから NSight Eclipse Edition で動作する代替ソリューションは、XCode 5 をインストールした後、Apple Developer Web サイトから古いバージョンのコマンドライン ツール パッケージをダウンロードすることです。これにより、gcc が /usr/bin に再インストールされます。 . これを行うには、に移動します

http://developer.apple.com/downloads/index.action

Apple ID でサインインし、画面左側の検索ペインを使用してコマンドライン ツールを検索します。

于 2013-10-27T02:26:34.350 に答える
1

Clang は OsX Maverick リリースでデフォルトのコンパイラになり、gcc および g++ コマンドは clang コンパイラにリダイレクトされます。以下の手順に従って、homebrew から gcc コンパイラをダウンロードし、gcc および g++ コマンドを gcc コンパイラにリンクすることができます。

$ brew install gcc48
[...]

$ sudo mkdir /usr/bin/backup && sudo mv /usr/bin/gcc /usr/bin/g++ /usr/bin/backup
$ sudo ln -s /usr/local/bin/gcc-4.8 /usr/bin/gcc
$ sudo ln -s /usr/local/bin/g++-4.8 /usr/bin/g++

この記事で解決策を見つけました: http://gvsmirnov.ru/blog/tech/2014/02/07/building-openjdk-8-on-osx-maverick.html#all-you-had-to-do -was-follow-the-damn-train-cj

于 2014-10-09T13:23:31.143 に答える
0

これは、Lion で私に役立つ Homebrew のレシピです。

$ brew cat memtestG80
require "formula"

# Documentation: https://github.com/Homebrew/homebrew/wiki/Formula-Cookbook
#                /usr/local/Library/Contributions/example-formula.rb
# PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST!

# Requires at compile time nvcc from https://developer.nvidia.com/cuda-downloads

# Requires popt at compile time

class Memtestg80 < Formula
  homepage ""
  url "https://github.com/ihaque/memtestG80/archive/master.zip"
  sha1 ""
  version "c4336a69fff07945c322d6c7fc40b0b12341cc4c"

  # depends_on "cmake" => :build
  depends_on :x11 # if your formula requires any X11/XQuartz components

  def install
    # ENV.deparallelize  # if your formula fails when building in parallel

    system "make", "-f", "Makefiles/Makefile.osx", "NVCC=/usr/local/cuda/bin/nvcc -ccbin /usr/bin/clang", "POPT_DIR=/usr/local/Cellar/popt/1.16/lib"
    system "cp", "-a", "memtestG80", "/usr/local/bin"
  end

  test do
    # `test do` will create, run in and delete a temporary directory.
    #
    # This test will fail and we won't accept that! It's enough to just replace
    # "false" with the main program this formula installs, but it'd be nice if you
    # were more thorough. Run the test with `brew test memtestG80`.
    #
    # The installed folder is not in the path, so use the entire path to any
    # executables being tested: `system "#{bin}/program", "do", "something"`.
    system "false"
  end
end
于 2014-03-01T22:21:25.630 に答える