通过pragma-clang诊断禁用-Werror

通过pragma-clang诊断禁用-Werror,clang,pragma,llvm-clang,Clang,Pragma,Llvm Clang,使用-Werror将所有警告视为错误,我不想禁止使用不推荐的声明警告: #pragma clang diagnostic push #pragma clang diagnostic ignore "-Wdeprecated-declarations" SKPayment *myPayment = [SKPayment paymentWithProductIdentifier:completeName]; [[SKPaymentQueue defaultQueue] addPaym

使用
-Werror
将所有警告视为错误,我不想禁止使用不推荐的声明警告:

#pragma clang diagnostic push
#pragma clang diagnostic ignore "-Wdeprecated-declarations"
    SKPayment *myPayment = [SKPayment paymentWithProductIdentifier:completeName];
    [[SKPaymentQueue defaultQueue] addPayment:myPayment];
#pragma clang diagnostic pop

怎么做?

好的,找到了,用警告代替忽略:

#pragma clang diagnostic push
#pragma clang diagnostic warning "-Wdeprecated-declarations"
    SKPayment *myPayment = [SKPayment paymentWithProductIdentifier:completeName];
    [[SKPaymentQueue defaultQueue] addPayment:myPayment];
#pragma clang diagnostic pop

现在,我仍然使用这个不推荐使用的API,编译通过了
-Werror
,警告仍然存在(请记住删除此API使用)

好的!甚至在设置了“将警告视为错误”时也可以使用。它只会生成警告,而这些警告不会被视为错误。