3

私は、他のいくつかのライブラリ (具体的には、SFML と Box2D など) に依存するプロジェクトに取り組んでいます。警告を大きくして実行するのが好きですが、依存しているプロジェクトはそれほど厳密ではありません。

ライブラリをデフォルトの警告設定でコンパイルし、必要な警告フラグでコードをコンパイルする方法はありますか? CMakeLists.txt に次のフラグのリストがあります。コメントアウトされた行は、依存関係を壊すため、今すぐ有効にできないものです。

set(CUSTOM_CFLAGS ${CUSTON_CFLAGS}
    -std=c++0x 
    #-ansi 
    -pedantic
    -Werror 
    -Wall 
    -Wextra 
    #-Weffc++
    -Wshadow 
    -Winit-self 
    -Wsign-promo 
    -Wcast-align
    #-Wlogical-op 
    -Woverloaded-virtual 
    -Wno-unused-parameter 
    #-Wstrict-null-sentinel 
    -Wmissing-include-dirs 
    -Wframe-larger-than=8192 
    #-Wmissing-format-attribute
    -g 
    #Would like this but Box2D hsa a ridiculous amount of it...
    #-Wfloat-equal -Wno-error=float-equal
   )
4

1 に答える 1

1

はい、外部ライブラリを一度コンパイルできます。次に、外部のものを再コンパイルせずに、それらをプロジェクトに含めてリンクできます。再コンパイルする必要がある唯一の外部コードは、ライブラリ ヘッダー ファイルにあります。のようなものを書く

#pragma warning(push)
#pragma warning(disable:2892,2893,2894,4096)
#include <external_header.h>
#pragma warning(pop)

外部ヘッダー ファイルでポップアップする警告を無効にするため。このプラグマはコンパイラごとに異なりますが、ほとんどのコンパイラにはこれらの線に沿ったものがあります。

于 2012-08-16T16:53:41.280 に答える