c++ - 如何设置 CMake 以与 Visual Studio 2017RC 和 CUDA 8.0 一起使用?

标签 c++ visual-studio cuda cmake

Visual Studio 2017 RC 包含更紧密的 CMake 集成,允许跳过生成项目/解决方案文件的中间步骤,并有效地将 CMake 用作项目文件本身。 Microsoft 提供了足够的文档来将这些功能与常规 C++ 文件一起使用,并且此网站 (example) 上有足够的文档来使 CUDA 和 Cmake 在将 CUDA 代码链接到 C++ 代码时能够很好地发挥作用。

我找不到关于如何使 CMake、Visual Studio 2017 RC 和 CUDA 8.0 都能很好地运行的信息。这是一个难题,因为 2017RC 无论如何都没有集成 CUDA SDK,我希望使用 2017RC,以便我的 CUDA 代码的 C++ 接口(interface)可以使用 C++14 和/或 C++17。我正在从事一个大型项目的开始工作,该项目主要涉及编写一个通过 C++ 访问的静态 CUDA 库:因此,我想让 CMake 负责将我的 CUDA 源代码编译成一个静态库,并且它有助于将链接信息提供给 Visual Studio。到目前为止,我还没有成功使用 FindCUDA 的各种功能来完成此操作,但我假设这是由于我的误解所致。我已经阅读了 Nvidia 关于可分离编译的文档,但这对弄清楚 CMake 没有帮助。

此外,每当我尝试在 VS2017RC 中使用 CMake 时,我仍然会得到 CMake 喜欢吐出的各种 vcxproj 文件。这是由于我的错误吗?如何编辑构建命令参数或 CMakeLists.txt 以获得演示的功能 here上类?

最佳答案

非常简短(并且仅在撰写本文时)的答案是您不能。 CUDA 8 不支持 VS2017。目前仅支持 VS2015。

您总能找到 CUDA 发行版支持的编译器/IDE 版本 here

编辑添加 CUDA 9 版本将添加对 VS2017 的官方支持。

关于c++ - 如何设置 CMake 以与 Visual Studio 2017RC 和 CUDA 8.0 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42046708/

相关文章:

c++ - 如何拒绝 MSVC 自己包含 header

c++ - 访问 CUDA 中的结构成员?

c++ - 使用 getline 从文本文件创建 2 个并行字符串数组

c++ - 为什么会出现此错误? C++中针对std::string数组的 “[variable] does not name a type”,即使它已包括在内并且在相同范围内

visual-studio - 将 PowerShell Core 添加到 Visual Studio 的终端列表

cudaMemset 无法获取参数

c++ - C++:从GPU内存(cudaMemcpy2D)获取BGR图像(cv::Mat)

c++ - 移动 vector 的元素 C++

c++ - 函数中指向 vector vector 的指针给出 'expression must have pointer type' 错误

c# - 在 Visual Studio 中使空格像选项卡一样工作的技巧