Makefileを使用してプロジェクトを作成しているときに、次のエラーが発生します。
error: implicit declaration of function ‘fatal’ [-Werror=implicit-function-declaration]
cc1: all warnings being treated as errors
./configure--helpは
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--disable-gtktest do not try to compile and run a test GTK+ program
--enable-debug Turn on debugging
-Werrorを含めないようにconfigureに指示するにはどうすればよいですか?
Werror
はgcc引数であり、./configure
を介して直接削除することはできません。そうしないと、--disable-error
のようなオプションがヘルプテキストに表示されます。ただし、それは可能です。
環境変数を設定します。
export CFLAGS="-Wno-error"
これはCコンパイラ用です。プロジェクトでC++を使用している場合は、次のようにします。
export CXXFLAGS="-Wno-error"
非常にまれなケースですが、プロジェクトがこの変数を尊重しない場合、最後の手段はconfigure.ac
ファイルを編集して-Werror
を検索し、それが含まれる文字列から削除することです(ただし注意してください)。
この機能は何年もの間autotoolsにあったようです:
./configure --disable-werror
残念ながら、次の特定のケースを機能させることができませんでした。
./configure --enable-wno-error=unused-value
逃げればうまくいくかもしれない '=
'記号、それが可能であると仮定します。スキムが言うように、CFLAGS
またはCXXFLAGS
を引き続き使用できます。
私にとってこの作品は、curlpp、lubuntu 16.10をコンパイルしています:
./configure --disable-ewarning
モジュールで--disable-Werror
(大文字のW
を使用)を使用する必要がありました。 上記のsudomanの回答 は--disable-werror
(小文字のw
)を使用することを提案しています。
タイプミスのように見えるかもしれませんが、特にconfigure
がconfigure
によって生成される場合は、実際には特定のautoconf
設定に依存します。 configure
を無効にするためにWerror
スクリプトに渡す必要があるものは、ビルドシステムのセットアップ方法によって異なります。
プロジェクトでautoconf-archive
プロジェクトの AX_COMPILER_FLAGS オプションを使用する場合、デフォルトで-Werror
が有効になります。
別のモジュールでは、次のようなものを見つけることができます。
+AC_ARG_ENABLE([werror],
+ AC_HELP_STRING([--disable-werror],
+ [do not build with -Werror]),
したがって、--disable-werror
を使用する必要があります。