首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NVCC警告级别

NVCC警告级别
EN

Stack Overflow用户
提问于 2013-01-31 19:33:51
回答 1查看 1.7K关注 0票数 7

我希望NVCC将以下警告视为错误:

代码语言:javascript
复制
warning : calling a __host__ function("foo") from a __host__ __device__ function("bar")

NVCC文档"NVIDIA CUDA编译器驱动程序NVCC“甚至不包含”警告“一词。

EN

回答 1

Stack Overflow用户

发布于 2013-10-19 21:45:12

引用CUDA编译器驱动程序NVCC参考指南,第3.2.8款。“通用工具选项”

--Werror kind将指定类型的警告变为错误。以下是此选项接受的警告种类列表: cross-execution-space-call对不支持的跨执行空间调用更加严格。编译器将为从__host__ __device__调用__host__函数生成一个错误,而不是一个警告。

因此,做以下工作:

项目->属性->配置属性-> CUDA C/C++ ->命令行->附加光学->添加--Werror交叉执行-空间调用

这个测试程序

代码语言:javascript
复制
#include <cuda.h>
#include <cuda_runtime.h>

void foo() { int a = 2;}

__host__ __device__ void test() {
    int tId = 1;
    foo();
}

int main(int argc, char **argv) { }

返回以下警告

代码语言:javascript
复制
warning : calling a __host__ function("foo") from a __host__ __device__ function("test") is not allowed

没有上述附加编译选项,并返回以下错误

代码语言:javascript
复制
Error   3   error : calling a __host__ function("foo") from a __host__ __device__ function("test") is not allowed

使用上面提到的附加编译选项。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14633705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档