我尝试在我的Mac OSX 10.8.3上使用CMake编译一个简单的CUDA“Hello World”程序。
调用cmake .
似乎成功了。这是我的CMakeList.txt
文件:
project(HelloWorld)
cmake_minimum_required(VERSION 2.8)
FIND_PACKAGE(CUDA)
CUDA_INCLUDE_DIRECTORIES(/Developer/NVIDIA/CUDA-5.0/samples/common/inc)
CUDA_ADD_EXECUTABLE(helloWorld helloWorld.cu)
...和输出:
-- The C compiler identification is Clang 4.2.0
-- The CXX compiler identification is Clang 4.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found CUDA: /Developer/NVIDIA/CUDA-5.0 (found version "5.0")
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/mennny/Documents/UNI/6_Semester/0_PMPP/1_exercises/cuda-hello-world
但是随后调用make
时会出现以下错误:
[100%] Building NVCC (Device) object CMakeFiles/helloWorld.dir//./helloWorld_generated_helloWorld.cu.o
clang: error: unsupported option '-dumpspecs'
clang: error: no input files
CMake Error at helloWorld_generated_helloWorld.cu.o.cmake:206 (message): Error generating /Users/mennny/Documents/UNI/6_Semester/0_PMPP/1_exercises/cuda-hello-world/CMakeFiles/helloWorld.dir//./helloWorld_generated_helloWorld.cu.o
make[2]: *** [CMakeFiles/helloWorld.dir/./helloWorld_generated_helloWorld.cu.o] Error 1
make[1]: *** [CMakeFiles/helloWorld.dir/all] Error 2
make: *** [all] Error 2
我在谷歌上搜索了出现的错误,但没有找到足够的答案。不知道为什么make
失败了,尽管cmake
成功了。感谢您的帮助。
CUDA_HOST_COMPILER
设置为/usr/bin/gcc
是正确的答案。使用我展示的CMakeList.txt
调用cmake . -DCUDA_HOST_COMPILER:FILEPATH=/usr/bin/gcc
可以解决问题。谢谢! - Mennny