首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMake找不到CUDA:“找不到cmake模块文件: CMakeDetermineCUDACompiler.cmake”

CMake找不到CUDA:“找不到cmake模块文件: CMakeDetermineCUDACompiler.cmake”
EN

Stack Overflow用户
提问于 2018-12-20 05:19:51
回答 2查看 4.1K关注 0票数 0

我正在尝试写一个需要cuda功能的CMake文件。咨询this answer后,我在我的CMakeLists.txt中添加了这一行:

代码语言:javascript
复制
set(CMAKE_CUDA_COMPILER  /usr/local/cuda-9.2/bin/nvcc)

但是当使用cmake命令时,它仍然会报错:

代码语言:javascript
复制
yuqiong@yuqiong-G7-7588:/media/yuqiong/DATA/alexnet/src/cpp/train$ cmake .
CMake Error: Could not find cmake module file: CMakeDetermineCUDACompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CUDA_COMPILER_ENV_VAR
CMake Error: Could not find cmake module file: /media/yuqiong/DATA/alexnet/src/cpp/train/CMakeFiles/3.5.1/CMakeCUDACompiler.cmake
CMake Error: Could not find cmake module file: CMakeCUDAInformation.cmake
CMake Error: Could not find cmake module file: CMakeTestCUDACompiler.cmake
-- Configuring incomplete, errors occurred!
See also "/media/yuqiong/DATA/alexnet/src/cpp/train/CMakeFiles/CMakeOutput.log".

这似乎令人困惑,因为我不知道还可以在哪里设置环境变量?知道为什么set命令不能帮助cmake找到nvcc编译器吗?

为了以防万一,这里是我的CMakeLists.txt

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.5.1)
set(CMAKE_CUDA_COMPILER  /usr/local/cuda-9.2/bin/nvcc)

project(train LANGUAGES CXX CUDA)

set(CMAKE_CXX_STANDARD 14)
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )


add_executable(train train.cu)
target_link_libraries( train ${OpenCV_LIBS} )
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-20 05:27:21

实际上,要使用project(train LANGUAGES CUDA),你需要在Linux上安装CMake 3.8。在此之前,您需要使用以下旧方法:

代码语言:javascript
复制
FindPackage(CUDA)

并手动添加库。

失败是因为在您的CMake版本中没有对CUDA的本地支持,请使用旧方法。

票数 2
EN

Stack Overflow用户

发布于 2018-12-20 07:19:58

对于遇到这个问题的任何人,下面是我使用的最后一个CMakeLists.txt文件:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.5.1)
set(CMAKE_CUDA_COMPILER  /usr/local/cuda-9.2/bin/nvcc)

project(train)
include(FindCUDA)

set(CMAKE_CXX_STANDARD 14)
find_package( OpenCV REQUIRED )
find_package(CUDA REQUIRED)
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -gencode arch=compute_30,code=sm_30)

include_directories( ${OpenCV_INCLUDE_DIRS} )

cuda_add_executable(train train.cu)
target_link_libraries( train ${OpenCV_LIBS} )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53859271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档