mahmood
mahmood

Reputation: 24715

Disable -Werror in 'configure' file

While making a project with Makefile, I get this error:

error: implicit declaration of function ‘fatal’ [-Werror=implicit-function-declaration]

cc1: all warnings being treated as errors

The ./configure --help shows:

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

How can I tell configure not to include -Werror?

Upvotes: 22

Views: 65939

Answers (5)

Frank Sorschak
Frank Sorschak

Reputation: 39

I ran into this problem, and it turned out that GCC was not installed on my freshly-started EC2 instance running Ubuntu 20.04 (Focal Fossa).

Simply running sudo apt install gcc fixed this issue for me.

Upvotes: -2

andrew-e
andrew-e

Reputation: 732

It seems like the feature has been in autotools for many years:

./configure --disable-werror

Unfortunately, I wasn't able to get the following specific case to work:

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

Maybe it could work if one escaped the '=' symbol, assuming it's possible. Like skim says, one can still use CFLAGS or CXXFLAGS.

Upvotes: 9

lanoxx
lanoxx

Reputation: 13051

I had to use --disable-Werror (with an uppercase W) on my module. While sudoman's answer above suggests to use --disable-werror (with a lowercase w).

It may look like a typo, but it is actually dependent on your particular configure setup, especially if configure is generated by autoconf. What needs to be passed to the configure script to disable Werror depends on how the build system was setup.

If your project uses the AX_COMPILER_FLAGS option from the autoconf-archive project, then by default -Werror is enabled.

In another module you may find something like this:

+AC_ARG_ENABLE([werror],
+          AC_HELP_STRING([--disable-werror],
+                 [do not build with -Werror]),

And thus you would need to use --disable-werror.

Upvotes: 3

FRL
FRL

Reputation: 776

This works for me, compiling curlpp on Lubuntu 16.10:

./configure --disable-ewarning

Upvotes: 1

skim
skim

Reputation: 399

Werror is a GCC argument, and you cannot remove it directly via ./configure. Otherwise, an option like --disable-error would show up in the help text. However, it's possible.

Set an environment variable:

export CFLAGS="-Wno-error"

That's for C compilers. If the project uses C++, do:

export CXXFLAGS="-Wno-error"

In the very rare case the project does not honor this variables, your last resort is to edit the configure.ac file and search for -Werror and remove it from the string it occurs in (be careful though).

Upvotes: 35

Related Questions