【问题标题】:Cuda NVCC compiler - how to /showincludes?Cuda NVCC 编译器 - 如何 /showincludes?
【发布时间】:2019-08-26 19:25:54
【问题描述】:

我需要在 Visual Studio 的“输出”窗口中显示所有包含(按它们包含的顺序),以找出哪个文件产生了一些模糊的错误。

但在 Visual Studio for Cuda 中编译项目时找不到启用“/showincludes”的方法。它使用 NVCC,似乎没有这个选项。

ProjectSettings -> C/C++ -> Advanced ->Show all includes 中有一个选项。

但是,ProjectSettings -> Cuda C/C++" 中缺少此选项

有没有办法启用它?

我找到了a similar post from 2018,但没有答案。

【问题讨论】:

    标签: c++ visual-studio cuda nvcc


    【解决方案1】:

    nvcc 支持 -M-MM 选项,当未指定 dependency output file 时,会将包含内容打印到标准输出。

    Visual Studio 集成并没有真正的开关,但您应该能够在 CUDA C/C++ 项目属性的命令行类别的附加选项中指定它...

    【讨论】:

    • 嗯,将-M 扔进Cuda C/C++ -> Command Line ->Additional Options 会导致以下错误:nvcc fatal : More than one compilation phase specified。使用-M -MM 使其产生nvcc fatal : Unknown option 'MM'
    • @Kari 确实,我忘记了这被视为一个单独的阶段,因此可能会与 VS 集成混淆。恐怕你必须自己调用 nvcc,例如,在开发人员命令提示符下......
    【解决方案2】:

    您可以通过-Xcompiler <flag> 将任何编译器标志传递给底层主机编译器。
    因此-Xcompiler /showincludes 应该这样做。

    【讨论】:

    • 尝试将-Xcompiler "/showincludes " 放入Cuda C/C++ -> Command Line ->Additional Options,但输出窗口只是一个接一个地显示文件。一段时间后,它开始给出这些错误:2>cl : Command line warning D9002: ignoring unknown option '/showincludes'。顺便说一句,使用 Visual Studio 2017
    • 请注意,这只会将/showincludes 传递给主机编译器。如果不使用主机编译器或者主机和设备代码之间的包含不同,这将不起作用......
    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 2013-05-06
    • 2016-03-20
    • 2017-09-28
    • 2012-09-29
    相关资源
    最近更新 更多