Visual Studio 2017 RC包含更紧密的CMake集成,允许人们跳过生成项目/解决方案文件的中间步骤,并有效地将CMake用作项目文件本身。 Microsoft提供了足够的文档来将这些功能与常规C ++文件一起使用,并且在将CUDA代码链接到C ++代码时,有足够的文档可以使这个网站(example)使CUDA和Cmake很好地发挥作用。 / p>
我无法找到的信息是如何使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文件。这是由于我的错误吗?如何编辑构建命令参数或CMakeLists.txt以使演示here的功能正常工作?
答案 0 :(得分:3)
非常短(并且在撰写本文时)答案是你不能。 CUDA 8不支持VS2017。目前仅支持VS2015。
您始终可以找到CUDA发布版本支持的编译器/ IDE版本here
编辑添加CUDA 9版本将添加对VS2017的官方支持。
答案 1 :(得分:1)
您需要做的就是将CUDA_HOST_COMPILER变量设置为支持的编译器,例如visual studio 2015编译器。
在我的情况下,这是: C:/ Program Files(x86)/ Microsoft Visual Studio 14.0 / VC / bin / amd64 / cl.exe
由于两个运行时库都是二进制兼容的,您可以在CUDA中使用2015编译器,并使用2017编译器编译应用程序的所有其余部分。