2011-06-27 157 views
0

我想在我的項目中使用GCC編譯器選項-Wextra。 但它會導致PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP出現問題。如何在使用PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP和-Wextra時避免編譯器警告

下面的代碼:

static pthread_mutex_t g_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; 

導致以下警告:

test.c:39: warning: missing initializer 
test.c:39: warning: (near initialization for `g_mutex.__data.__nusers') 

有沒有辦法避免的警告?

Gcc版本是3.4.5。和pthread版本是2.3.5。

+0

gcc應該避免發出來自系統頭文件的警告。我不知道你的gcc是否太老了,或者你是否包含pthread.h錯誤(可能用''「'而不是'<>'?),所以gcc不會把它當作系統頭文件。 –

+0

警告不是來自系統標題;它來自test.c;因此不被壓制。 –

回答

0

隨着最近的海灣合作委員會版本(不是你提到的那個,恐怕),你可以使用選項-Wno-missing-field-initializers來消除這種警告。