nvcc on mac osx 10.9 unsupported option

2019-09-21 06:10发布

问题:

When I try to compile any .cu file including a simple Hello World I get this error on the command line:

Agustin$ nvcc -o hello_world hello_world.cu
clang: error: unsupported option '-dumpspecs'
clang: error: no input files

I'm running OSX Mavericks 10.9

Here is the Cuda version:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2013 NVIDIA Corporation
Built on Wed_Jul_10_11:16:01_PDT_2013
Cuda compilation tools, release 5.5, V5.5.0

Also reading on the internet, if I excecuted the file like so:

nvcc -o hello_world hello_world.cu  -ccbin /usr/bin/clang 

I get the following error

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/_config(191): error: identifier "_char16_t" is undefined

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/_config(192): error: identifier "_char32_t" is undefined

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config(303): error: expected an identifier

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config(303): error: inline specifier allowed on function declarations only

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config(304): error: expected an expression

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config(305): error: expected a ";"

.............. And many more lines of similar error printouts

回答1:

Try updating to the new version of the cuda toolkit that was posted just recently for OSX 10.9 here.

Be sure to follow the instructions.

You may also be interested in my answer here.



回答2:

The second problem probably comes from nvcc and libc++ not playing well together. Try:

nvcc -o hello_world hello_world.cu -ccbin /usr/bin/clang -Xcompiler -stdlib=libstdc++


回答3:

I was running into a similar problem. As Robert mentions, this has to do with libstdc++ v.s. libc++ (the default for clang).

You can see this working CMake helloworld project here: https://github.com/drtaglia/homebrew/tree/master/cuda_simple

In the main.cpp I also have manual compile instructions (you will have to tweak them slightly to match your paths)