使用 CMAKE 编译 CUDA C++ - 指定了多个编译阶段
Compile CUDA C++ using CMAKE- More than one compilation phase specified
我正在尝试使用 CMake 编译一个 cuda 应用程序(在 OSX Yosemite 上)。我使用 Makefile 进行编译:
CXX = nvcc
CXX_FLAGS = -c -O3 -arch=sm_21
CXX_LIBS =
BIN = md5_gpu.o
main:
$(CXX) $(CXX_FLAGS) md5_gpu.cu -o $(BIN) $(CXX_LIBS)
这个 makefile 有效,我已经尝试将它移植到 CMake。这是我为项目制作 CMakeLists.txt 的尝试:
### CMakeLists.txt for CUDA
cmake_minimum_required(VERSION 2.8)
find_package(CUDA QUIET REQUIRED)
# Pass options to NVCC
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-c -O3 -arch=sm_21)
cuda_compile(md5 md5_gpu.cu)
cuda_add_executable(md5Build ${md5})
但是,当我尝试使用 Cmake 编译它时(Cmake -> make),会抛出一个错误:
nvcc fatal : More than one compilation phase specified
CMake Error at cuda_compile_generated_md5_gpu.cu.o.cmake:206
额外的 -c
标志是多余的,这应该有效:
find_package(CUDA)
list(APPEND CUDA_NVCC_FLAGS "-arch=sm_21;-O3")
cuda_add_executable(md5Build md5_gpu.cu)
我正在尝试使用 CMake 编译一个 cuda 应用程序(在 OSX Yosemite 上)。我使用 Makefile 进行编译:
CXX = nvcc
CXX_FLAGS = -c -O3 -arch=sm_21
CXX_LIBS =
BIN = md5_gpu.o
main:
$(CXX) $(CXX_FLAGS) md5_gpu.cu -o $(BIN) $(CXX_LIBS)
这个 makefile 有效,我已经尝试将它移植到 CMake。这是我为项目制作 CMakeLists.txt 的尝试:
### CMakeLists.txt for CUDA
cmake_minimum_required(VERSION 2.8)
find_package(CUDA QUIET REQUIRED)
# Pass options to NVCC
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-c -O3 -arch=sm_21)
cuda_compile(md5 md5_gpu.cu)
cuda_add_executable(md5Build ${md5})
但是,当我尝试使用 Cmake 编译它时(Cmake -> make),会抛出一个错误:
nvcc fatal : More than one compilation phase specified
CMake Error at cuda_compile_generated_md5_gpu.cu.o.cmake:206
额外的 -c
标志是多余的,这应该有效:
find_package(CUDA)
list(APPEND CUDA_NVCC_FLAGS "-arch=sm_21;-O3")
cuda_add_executable(md5Build md5_gpu.cu)