Tôi đang bao gồm tệp từ thư viện của bên thứ ba làm tăng lỗi có thể bị hạ cấp xuống cảnh báo với -fpermissive
. Nhưng vì tôi không muốn "gây ô nhiễm" nhật ký biên dịch của tôi với những cảnh báo này, tôi muốn hoàn toàn vô hiệu hóa các thông báo này.Trong gcc, làm thế nào để tắt tiếng cảnh báo -fpermissive?
Cho đến giờ, tôi đặt tùy chọn -fpermissive
với diagnostic pragma khi bao gồm tệp; cái gì đó như:
#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-fpermissive"
#include <third-party-file.h>
#pragma GCC diagnostic pop
Từ gcc thường cung cấp cả một phiên bản "tích cực" và "tiêu cực" của -f
cờ, tôi nghĩ về phớt lờ "không-dễ dãi" tính năng:
#pragma GCC diagnostic ignored "-fno-permissive"
#include <third-party-file.h>
Nhưng có dường như không phải là phiên bản "phủ định" của cờ -fpermissive
(Tôi đang sử dụng gcc 4.6.3; nhưng ngay cả phiên bản 4.7.0 does not have it).
Bất kỳ cơ hội nào tôi có thể bắt chước hành vi này? Cảm ơn!
'-fno-permissive' là mặc định. '-fpermissive' và không có gì là phiên bản" tiêu cực "và" tích cực "của cờ. Điều đó nói rằng, bạn không nên sử dụng điều này. Sửa mã! Ngay cả khi nó không phải của bạn. – rubenvb
-fno-permissive không phải là mặc định, vì tùy chọn không tồn tại. Các hành vi nó sẽ có nếu nó đã tồn tại sẽ là mặc định mặc dù. Tôi có thể sửa mã, nhưng nó có vẻ giống như một giải pháp khác ... Dù sao, sửa toàn bộ các tiêu đề được bao gồm không thực sự là một lựa chọn. – piwi
đó là chính xác những gì tôi có ý nghĩa. '-fpermissive' là hack/workaround ở đây. Chúng ta đang nói về mã nào. Có thể có một lựa chọn tốt hơn. – rubenvb