我正在尝试使用基于clang-3.9的文档构建一个cuda项目。但我想使用cmake来构建我的项目,已经将CMAKE_CC_COMPILER和CMAKE_CXX_COMPILER分别设置为clang和clang++。
但问题是,如果我使用
file(GLOB_RECURSE CUDA_SOURCES "./*.cu")
CUDA_ADD_LIBRARY(Benchmarks_CUDA ${CUDA_SOURCES})
如果我在我的CMakeList.txt中使用,则cmake将默认使用nvcc编译器。但是我希望使用clang来编译 .cu 文件。
相反,如果我使用
add_library (Benchmarks_CUDA ${CUDA_SOURCES})
那么我将会收到一个错误
CMake Error: Cannot determine link language for target "Benchmarks_CUDA".
CMake Error: CMake can not determine linker language for target: Benchmarks_CUDA
请问如何使用cmake和clang构建.cu文件。
.cu
文件,但它不支持与nvcc相同的选项。它不能作为现有构建系统的替代品。您不能依赖于CUDA_ADD_LIBRARY
自动按预期工作。您需要创建一个新函数,例如CLANG_CUDA_ADD_LIBRARY
,使用适当的clang
选项编译.cu
文件。 - Pavan Yalamanchili