2012-09-01 23 views
5

Gcc sürüm 4.2.1 ile osx 10.8 üzerinde 1.48 artırmayı kullanarak bir yazılım oluşturuyorum ve bazı yükseltme kaynakları için -Wparentheses-equality uyarıları almaya başladım.silence -Waphheses-eşitlik hatası

equality comparison with extraneous parentheses 
    [-Werror,-Wparentheses-equality] 
     else if((state->type == syntax_element_long_set_rep)) 

Ben kodunu değiştirmek istiyorum ama, kütüphane ile tamircilik nasıl ben uyarıyı olur ve derleyici devam yapmak istemiyorum? GCC manual itibaren

cevap

10

:

Bunların çoğu var hem pozitif hem negatif formlar; -ffoo'un negatif formu -fno-foo olacaktır.

-Wno-parentheses-equality ürününü deneyin.

+0

Bunun için oldukça yeni, make komutuna argüman olarak -Para-parantez-eşitlik eklemem gerekir mi? Bunu denedim ve hala –

+0

@ jonathantopf No hatası alıyorum, bu derleyici için bir seçenektir. Make'i kullanıyorsanız, genellikle bu, ör. 'CXXFLAGS'. '-Wall' (orada da saklanacak ortak bir seçenek) aramaya çalışın ve bu seçeneği yanına ekleyin. –

3

Sadece uyarıyı devre dışı bırakmanın bir alternatifi olarak, 'sistem' yolları olarak sayılacak belirli yolları da belirtebilirsiniz. Sistem başlıkları için uyarılar bastırılır, böylece belirli bir kitaplık başlıklarının 'sistem' üstbilgileri olduğunu ve bunlarda uyarılara dikkat etmediğinizi bildirebilirsiniz. Bunun için

clang argümanı --system-header-prefix=<prefix>

Yani, örneğin size "--system-header-prefix=boost/"

http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-in-system-headers

Ve hata mesajı bakılırsa aslında clang değil gcc kullanıyorsunuz diyebilirsiniz olduğunu.