Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何设置CMake以便与Visual Studio 2017RC和CUDA 8.0一起使用?_C++_Visual Studio_Cuda_Cmake - Fatal编程技术网

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

C++ 如何设置CMake以便与Visual Studio 2017RC和CUDA 8.0一起使用?,c++,visual-studio,cuda,cmake,C++,Visual Studio,Cuda,Cmake,Visual Studio 2017 RC包含更紧密的CMake集成,允许跳过生成项目/解决方案文件的中间步骤,并将CMake有效地用作项目文件本身。微软有足够的文档来使用这些规则,并在C++网站上有足够的文档,在连接CUDA代码到C++代码时,在这个网站上有足够的文档来制作CUDA和CGED播放。 我找不到关于如何使CMake、Visual Studio 2017 RC和CUDA 8.0都能很好地发挥作用的信息。这是一个困难的问题,因为2017RC无论如何都没有集成CUDA SDK,我希望使用

Visual Studio 2017 RC包含更紧密的CMake集成,允许跳过生成项目/解决方案文件的中间步骤,并将CMake有效地用作项目文件本身。微软有足够的文档来使用这些规则,并在C++网站上有足够的文档,在连接CUDA代码到C++代码时,在这个网站上有足够的文档来制作CUDA和CGED播放。 我找不到关于如何使CMake、Visual Studio 2017 RC和CUDA 8.0都能很好地发挥作用的信息。这是一个困难的问题,因为2017RC无论如何都没有集成CUDA SDK,我希望使用2017RC,这样我的CUDA接口的C++接口可以使用C++ 14和/或C++ 17。我正在着手一个大型项目的开始,该项目主要涉及编写一个通过C++访问的静态CUDA库:因此,我想让CMake负责将我的CUDA源代码编译成一个静态库,并帮助它将链接信息提供给Visual Studio。到目前为止,我还没有成功地使用FindCUDA的各种功能来实现这一点,但我认为这是由于我的误解。我已经阅读了Nvidia中关于可分离编译的文档,但这对理解CMake没有帮助

此外,每当我尝试在VS2017RC中使用CMake时,我仍然会得到CMake喜欢吐出的各种vcxproj文件。这是因为我的错误吗?如何编辑build命令参数或CMakeLists.txt,以使演示的功能正常工作?

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

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

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

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

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


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

您只需将CUDA_HOST_编译器变量设置为受支持的编译器,例如visual studio 2015编译器

就我而言,这是: C:/ProgramFiles(x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe


由于两个运行库都是二进制兼容的,因此您可以在CUDA中使用2015编译器,并使用2017编译器编译应用程序的所有其余部分。

您需要做的就是将CUDA_HOST_编译器变量设置为受支持的编译器,例如visual studio 2015编译器

就我而言,这是: C:/ProgramFiles(x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe


由于这两个运行库都是二进制兼容的,您可以在CUDA中使用2015编译器,并使用2017编译器编译应用程序的所有其余部分。

CUDA 8与VS 2017不兼容,只是一个暂时的错误解决方法:VS2015从未为我工作过(安装损坏等等),因此我使用VS2017中的VC14来制作CUDA项目,CUDA 8与VS 2017不兼容,只是暂时的解决方法不好:VS2015从来没有为我工作过(安装损坏等等),所以我在VS2017中使用VC14来制作CUDA项目,现在它可以工作了,现在缺少的是VS2017了解,当你打开CMake+CUDA项目时,它应该使用与创建CUDA 9.0项目时相同的功能集。主要是,它应该理解特殊的CUDA符号。现在缺少的是VS2017理解,当您打开CMake+CUDA项目时,它应该使用与创建CUDA 9.0项目时相同的功能集。主要是理解CUDA的特殊符号。