我正在从事一个使用C++和CUDA的C++11项目。
我想使用eclipse的语法突出显示和解析功能,特别是使用符号和实时错误检查。然而,当我使用“纯”eclipse时,CUDA内核通过<<<..>>>启动参数表示法破坏了解析,整个调用被标记为无效。当我使用Eclipse 7时,它将不会解析与C++11相关的内容,比如constexpr,因此无法解析我的模板类型。(见https://devtalk.nvidia.com/default/topic/830892/nsight-editor-does-not-parse-c-11-shows-syntax-error/)
有没有办法(黑客,插件,.)让日食处理那些<<<...>>>?
发布于 2018-02-18 15:22:58
对于这个特定的问题(对constexpr的支持),您现在可以使用CUDA 9附带的nsight (基于CDT8.4)。
带有nsight插件的定制CDT (要求CUDA 9)
如果您仍然希望使用更新的CDT版本,那么从CUDA 9开始有一个新的选项:它附带了一个安装程序<cuda-install-path>/bin/nsight_ee_plugins_manage.sh,它允许将nsight插件添加到现有的eclipse安装中。
前数据自动化系统9
解决方法可能是将内核启动封装在宏中:
#ifdef PARSED_BY_ECLIPSE
#define CALL_CUDA_KERNEL(cmd) (void)0 /* do nothing */
#else
#define CALL_CUDA_KERNEL(cmd) cmd
#endif并将符号PARSED_BY_ECLIPSE添加到用于索引的配置中。
https://stackoverflow.com/questions/31967697
复制相似问题