我希望NVCC将以下警告视为错误:
warning : calling a __host__ function("foo") from a __host__ __device__ function("bar")NVCC文档"NVIDIA CUDA编译器驱动程序NVCC“甚至不包含”警告“一词。
发布于 2013-10-19 21:45:12
引用CUDA编译器驱动程序NVCC参考指南,第3.2.8款。“通用工具选项”
--Werror kind将指定类型的警告变为错误。以下是此选项接受的警告种类列表:cross-execution-space-call对不支持的跨执行空间调用更加严格。编译器将为从__host__ __device__调用__host__函数生成一个错误,而不是一个警告。
因此,做以下工作:
项目->属性->配置属性-> CUDA C/C++ ->命令行->附加光学->添加--Werror交叉执行-空间调用
这个测试程序
#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) { }返回以下警告
warning : calling a __host__ function("foo") from a __host__ __device__ function("test") is not allowed没有上述附加编译选项,并返回以下错误
Error 3 error : calling a __host__ function("foo") from a __host__ __device__ function("test") is not allowed使用上面提到的附加编译选项。
https://stackoverflow.com/questions/14633705
复制相似问题