我有一个分为模块的项目,这是一个虚拟的例子:
如果我使用CLion编辑cuda_file.cu,所有符号都未解析(即使是标准库中的包含)也是由CLion编辑的。 所有代码完成/创建功能当然都已消失(除其他外)。问题似乎是,无论何时只使用CUDA文件创建库或可执行文件,Clion都会变得愚蠢,并且不再解析或解析任何内容。
我找到了两种解决方法,但它们并不友好,或者#34;清洁"使用:
这是来自cuda模块的CMakeLists.txt,其解决方法是:
cmake_minimum_required(VERSION 3.5)
message(STATUS "Configuring module cuda")
# Build module static library
FILE(GLOB CUDA_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
FILE(GLOB CUDA_CU_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cu)
FILE(GLOB CUDA_CU_HDRS
${CMAKE_CURRENT_SOURCE_DIR}/include/*.cuh)
cuda_compile(cuda_objs ${CUDA_CU_SRCS} ${CUDA_CU_HDRS})
add_library(cuda STATIC ${CUDA_SRCS} ${cuda_objs})
# because only .cu files, help cmake detect C++ language
set_target_properties(cuda PROPERTIES LINKER_LANGUAGE CXX)
在解析到其他标头和库的链接时,有没有办法避免CLion derping?
我已经将.cu和.cuh文件添加为CLion选项中的C / C ++代码并尝试使用JETBRAINS_IDE定义选项,如另一篇类似帖子中所述,但这两个问题并不相同
答案 0 :(得分:2)
似乎没有Jetbrains的干预来增加官方CUDA支持,我可以从组合中获得最多的CLion + CMake + CUDA是通过以下方式实现的:
我认为如果Jetbrains开始添加对CUDA的支持,那么它也不会删除添加这个虚拟文件的需要,但它也可能会解决列出的所有其他内容。
以下是nvidia博客的链接,其中包含有关CMake中官方cuda语言支持的示例以及新的" cuda aware" add_library():https://devblogs.nvidia.com/parallelforall/building-cuda-applications-cmake/
答案 1 :(得分:0)
从CLion 2020.1版本开始,现已正式支持CUDA项目
https://blog.jetbrains.com/clion/2020/04/clion-2020-1-cuda-clang-embedded/