web-dev-qa-db-ja.com

disable -Werrorini設定ファイル

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に指示するにはどうすればよいですか?

13
mahmood

Werrorはgcc引数であり、./configureを介して直接削除することはできません。そうしないと、--disable-errorのようなオプションがヘルプテキストに表示されます。ただし、それは可能です。

環境変数を設定します。

export CFLAGS="-Wno-error"

これはCコンパイラ用です。プロジェクトでC++を使用している場合は、次のようにします。

export CXXFLAGS="-Wno-error"

非常にまれなケースですが、プロジェクトがこの変数を尊重しない場合、最後の手段はconfigure.acファイルを編集して-Werrorを検索し、それが含まれる文字列から削除することです(ただし注意してください)。

19
skim

この機能は何年もの間autotoolsにあったようです:

./configure --disable-werror

残念ながら、次の特定のケースを機能させることができませんでした。

./configure --enable-wno-error=unused-value

逃げればうまくいくかもしれない '= '記号、それが可能であると仮定します。スキムが言うように、CFLAGSまたはCXXFLAGSを引き続き使用できます。

6
sudoman

私にとってこの作品は、curlpp、lubuntu 16.10をコンパイルしています:

./configure --disable-ewarning
1
FRL

モジュールで--disable-Werror(大文字のWを使用)を使用する必要がありました。 上記のsudomanの回答--disable-werror(小文字のw)を使用することを提案しています。

タイプミスのように見えるかもしれませんが、特にconfigureconfigureによって生成される場合は、実際には特定の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を使用する必要があります。

0
lanoxx