Min*_*ral 5 c++ cuda compiler-errors cmake nvcc
所以我已经成功地在我的 Linux 上开发了我的 CUDA 程序,但我也想支持 Windows 平台。但是,我一直在努力正确编译它。我用 :
当使用旧的已弃用的 Cmake CUDA 支持使用find_package(CUDA 10.1 REQUIRED)它时,使用它时会正确报告工具包的正确路径。但是,据我所知,最新的 Cmake 不再正确支持旧方法,并且其他方法不再cuda_add_library正确链接。因此,我已根据此将我的“CMakeLists.txt”文件重新格式化为以下内容:
cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
project(myproject LANGUAGES CXX CUDA)
add_library(mylib SHARED mycudalib.cu)
# My code requires C++ 11 for the CUDA library, not sure which ones of these
# will do the trick correctly. Never got the compiler this far.
target_compile_features(mylib PUBLIC cxx_std_11)
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CUDA_STANDARD 11)
set_target_properties( mylib PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
add_executable(test_mylib test.cpp)
target_link_libraries(test_mylib mylib ${CUDA_CUFFT_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)
但是,我从第 2 行收到以下错误:
CMake Error at C:/Program Files/CMake/share/cmake-3.15/Modules/CMakeDetermineCompilerId.cmake:345 (message):
No CUDA toolset found.
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.15/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
C:/Program Files/CMake/share/cmake-3.15/Modules/CMakeDetermineCUDACompiler.cmake:72 (CMAKE_DETERMINE_COMPILER_ID)
CMakeLists.txt:2 (project)
Run Code Online (Sandbox Code Playgroud)
我在网上尝试了各种建议,例如将以下内容添加到“CMakeLists.txt”:
set(CMAKE_CUDA_COMPILER "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.1/bin/nvcc")
Run Code Online (Sandbox Code Playgroud)
这是我在 Linux 上成功编译的“CMakeLists.txt”文件。不同之处在于我使用 Cmake 3.5 和 CUDA Toolkit 9.0:
cmake_minimum_required(VERSION 3.5)
project( myproject)
find_package(CUDA 9.0 REQUIRED)
if(CUDA_FOUND)
list(APPEND CUDA_NVCC_FLAGS "-std=c++11")
endif(CUDA_FOUND)
cuda_add_library(mylib SHARED mycudalib.cu)
cuda_add_executable(test_mylib test.cpp)
target_link_libraries(test_mylib mylib ${CUDA_CUFFT_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)
bja*_*ski 18
对于 Windows 10、VS2019 Community 和 CUDA 11.3,以下内容对我有用:
.\visual_studio_integration\CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions
到 VS2019 安装的 MSBuild 文件夹中C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations这四个文件是:
我曾尝试使用 Visual Studio Integration 安装(并重新安装)CUDA,但 CMake 无法找到 CUDA 安装(即使定义了 CUDA_PATH 和 CMAKE_CUDA_COMPILER)。
Min*_*ral 12
我现在在另一台电脑上尝试过,效果很好。所以我完全不知道为什么它在这个上不起作用。由于 CUDA_PATH 在我的系统变量中正确设置。
然后进一步研究,通过卸载 Visual Studio 的“构建工具”并仅安装社区 IDE,CMake 使用 IDE 而不是构建工具,然后它开始正常工作。
| 归档时间: |
|
| 查看次数: |
9263 次 |
| 最近记录: |