Projemizi gcc with -Wall -Werror seçeneklerini kullanarak oluşturuyoruz. Dış başlıklarından Uyarılar böyle, pragmas tarafından baskılanır:gcc: bastırma [varsayılan olarak etkin] C++ kodundan uyarı
error: inline function ‘...’ given attribute noinline [-Werror]
Ya uyarıyı -Werror kullanmamak olmadan:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#include <somelib/component/settings.h>
#pragma GCC diagnostic pop
yeni sürüme Externals yükselttikten sonra biz bastırmak için uyarıların yeni tip var
warning: inline function ‘...’ given attribute noinline [enabled by default]
Görünüşe göre #pragma GCC tanılaması göz ardı edildi.
Bu durumda aşağıdaki durumlarda ne yapılabilir?
- Harici başlıklar değiştirilemez. Yerel kopyanın yapım süresinde eklenmesi son çare olarak kabul edilebilir.
- Sorunlu üstbilgi yaygın olarak kullanılmaktadır.
-Werror
Sonunda yapı anda yama seçmiş bizim kod
kodunu gir ve memba yazara test yama ile bir değişiklik isteği göndermek:
execute_process(COMMAND "patch" "-N" "header_to_patch.h" "header_to_patch.h.patch")
Yama dosyası ile hazırlanmıştır . –
Yama, yalnızca açık kaynaklı bağımlılıklar için uygun bir çözümdür. Tescilli harici kütüphane için imkansız. Nihayet cmake 'execute_process (COMMAND" yaması "" -N "...) ile oluşturma zamanında yama yapmayı seçtik –