0
我試圖實際使用-Wall並刪除當前程序中的所有警告。我知道這不是必需的,但它似乎不會受到傷害,也沒有證明太耗時。我使用套接字在兩個程序之間進行通信:一個在C++ 11(帶有c個部分)和另一個在CUDA(因此NVCC與編譯器)之間進行通信。插座創作是非常相似的,並且爲了防止警告我已經寫了線,如: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
任何提示,將不勝感激。
謝謝。
CUDAsource.cuh是您創建的東西嗎?我無法通過Google,StackOverflow或NVIDIA論壇找到與其相關的任何內容。 – deathly809
是的,正如source.c。該套件是根據本教程http://www.cs.cf.ac.uk/Dave/C/node28.html創建的。警告只與「extern」行有關。 – mjedmonds
你可以把你的問題的行內容? – deathly809