問題は、Windowsで適切にコンパイルされる同じコードがUbuntuでコンパイルできないことです。このエラーが発生するたびに:
cc1: warnings being treated as errors
今、それは大きなコードベースであり、すべての警告を修正するのは好きではありません。
警告にもかかわらず、正常にコンパイルできる方法はありますか?
すべての有用な提案をありがとう。私は最終的に私のコードに警告がないことを確認しましたが、再びこの警告をsqlite3から受け取っていました:
Assuming signed overflow does not occur when assuming that (X - c) <= X is always true
次のCFLAGを追加して修正しました。
-fno-strict-overflow
確かに、-Werror
が設定されている場所を見つけて、そのフラグを削除します。その場合、警告は警告のみになります。
-Wno-error
を使用して、すべての警告をそのように扱うことができます。 -Wno-error=<warning name>
を使用して、特定の警告をそのように扱うことができます。ここで、<warning name>
は、エラーとして扱いたくない警告の名前です。
すべての警告を完全にdisableにする場合は、-w
を使用します(推奨されません)。
ソース: http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html
推奨されるように、MakeまたはCMakeファイルから-Werror
を削除します この投稿
Linuxカーネルをコンパイルしている場合。たとえば、「unused-but-set-variable」という警告を無効にする場合は、エラーとして扱われます。次のステートメントを追加できます。
KBUILD_CFLAGS += $(call cc-option,-Wno-error=unused-but-set-variable,)
makefileで
-Wall
および-Werror
コンパイラオプションが原因である可能性があります。コンパイラ設定で使用されているかどうかを確認してください。