NVCC:警告:允许所有异常与先前的功能不兼容

时间:2014-07-21 15:11:19

标签: c cuda warnings nvcc

我试图实际使用-Wall并删除当前程序中的所有警告。我知道这不是必需的,但似乎它不会受到伤害,并且没有被证明太耗费时间。

我使用套接字在两个程序之间进行通信:一个在C ++ 11中(带有c部分),另一个在CUDA中(因此NVCC作为编译器)。套接字创建非常相似,为了防止警告我写了如下行:

#include<string.h>
extern char* strcpy(char*,const char*);

此前向声明适用于gcc / g ++以防止出现如下警告:

source.c:33:4: warning: implicit declaration of function ‘strcpy’ [-Wimplicit-function-declaration] 
strcpy(saun.sun_path,CUDA_SOCKET_ADDR);

source.c:33:4: warning: incompatible implicit declaration of built-in function ‘strcpy’ [enabled by default]

但是,NVCC程序中的相同代码会产生另一个警告:

CUDAsource.cuh(26): warning: allowing all exceptions is incompatible with previous function "strcpy"
/usr/include/string.h(129): here

我需要在makefile中设置另一个设置吗?目前C方面有以下标志:

-g -O0 -Wall -std=c99

和nvcc有:

-g -G

任何提示都将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:2)

删除extern定义并将-D_GNU_SOURCE添加到编译器标志解决了这个问题。