how to fix configure: error: C compiler cannot create executables
Solution 1
My guess would be that you have the basic C compiler installed, but not the headers for the standard library. Try:
sudo apt install libc6-dev
[Edit: this produces similar symptoms, but wasn't the case here. The CFLAGS answers appear to be correct.]
Solution 2
From the config.log
:
configure:3478: gcc -03 conftest.c >&5
gcc: error: unrecognized command line option '-03'
The option is -O3
with the letter O
, not the number 0
(zero). So, you should run, as given in the README:
./configure CFLAGS="-O3"
Solution 3
Looks like your CFLAGS has a zero instead of capital O. That is invalid, and causing the compilation to fail. You can fix it, but really, look for a later version of the package which has been fixed.
Solution 4
I was having this exact same problem trying to install tivodecode on a base build of Linux Mint 17.3. I tried the:
./configure DFLAGS="-O3"
command but with no effect. So I tried:
sudo apt install libc6-dev
to install the latest C headers. I tried the ./configure
command again with no variables and all went well. The make
and make install
commands also completed successfully. My recommendation is to make sure the latest C headers are installed and then run your ./configure
command.
Related videos on Youtube
Mike O
Updated on September 18, 2022Comments
-
Mike O almost 2 years
used
./configure DFLAGS="-03"
and this is the config.log
checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking whether the C compiler works... no configure: error: in `/home/mike/cpuminer-2.4.2': configure: error: C compiler cannot create executables
my system is ubuntu 14.04 and the system details say the os is 32 bit. any help would be great as the compiler fails on anytime I try to use it, not just with this install.
config.log output:
This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by cpuminer configure 2.4.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ ./configure CFLAGS=-03 ## --------- ## ## Platform. ## ## --------- ## hostname = mike-Dell-DM051 uname -m = i686 uname -r = 3.13.0-57-generic uname -s = Linux uname -v = #95-Ubuntu SMP Fri Jun 19 09:27:48 UTC 2015 /usr/bin/uname -p = unknown /bin/uname -X = unknown /bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /usr/local/sbin PATH: /usr/local/bin PATH: /usr/sbin PATH: /usr/bin PATH: /sbin PATH: /bin PATH: /usr/games PATH: /usr/local/game ## ----------- ## ## Core tests. ## ## ----------- ## configure:2336: checking build system type configure:2350: result: i686-pc-linux-gnu configure:2370: checking host system type configure:2383: result: i686-pc-linux-gnu configure:2403: checking target system type configure:2416: result: i686-pc-linux-gnu configure:2460: checking for a BSD-compatible install configure:2528: result: /usr/bin/install -c configure:2539: checking whether build environment is sane configure:2594: result: yes configure:2745: checking for a thread-safe mkdir -p configure:2784: result: /bin/mkdir -p configure:2791: checking for gawk configure:2807: found /usr/bin/gawk configure:2818: result: gawk configure:2829: checking whether make sets $(MAKE) configure:2851: result: yes configure:2880: checking whether make supports nested variables configure:2897: result: yes configure:3026: checking whether to enable maintainer-specific portions of Make$ configure:3035: result: no configure:3061: checking for style of include used by make configure:3089: result: GNU configure:3160: checking for gcc configure:3176: found /usr/bin/gcc configure:3187: result: gcc configure:3416: checking for C compiler version configure:3425: gcc --version >&5 gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:3436: $? = 0 configure:3425: gcc -v >&5 Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.8/lto-wrapper Target: i686-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1~1$ Thread model: posix gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04) configure:3436: $? = 0 configure:3425: gcc -V >&5 gcc: error: unrecognized command line option '-qversion' gcc: fatal error: no input files compilation terminated. configure:3436: $? = 4 configure:3456: checking whether the C compiler works configure:3478: gcc -03 conftest.c >&5 gcc: error: unrecognized command line option '-03' configure:3482: $? = 1 configure:3520: result: no configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "cpuminer" | #define PACKAGE_TARNAME "cpuminer" | #define PACKAGE_VERSION "2.4.2" | #define PACKAGE_STRING "cpuminer 2.4.2" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL ""| #define PACKAGE "cpuminer" | #define VERSION "2.4.2" | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:3525: error: in `/home/mike/cpuminer-2.4.2': configure:3527: error: C compiler cannot create executables See `config.log' for more details ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_build=i686-pc-linux-gnu ac_cv_env_CCASFLAGS_set= ac_cv_env_CCASFLAGS_value= ac_cv_env_CCAS_set= ac_cv_env_CCAS_value= ac_cv_env_CC_set= ac_cv_env_CC_value= ac_cv_env_CFLAGS_set=set ac_cv_env_CFLAGS_value=-03 ac_cv_env_CPPFLAGS_set= ac_cv_env_CPPFLAGS_value= ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_LDFLAGS_set= ac_cv_env_LDFLAGS_value= ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set= ac_cv_env_host_alias_value= ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_host=i686-pc-linux-gnu ac_cv_path_install='/usr/bin/install -c'ac_cv_path_mkdir=/bin/mkdir ac_cv_prog_AWK=gawk ac_cv_prog_ac_ct_CC=gcc ac_cv_prog_make_make_set=yes ac_cv_target=i686-pc-linux-gnu am_cv_make_support_nested_variables=yes ## ----------------- ## ## Output variables. ## ## ----------------- ## ACLOCAL='${SHELL} /home/mike/cpuminer-2.4.2/missing aclocal-1.14' ALLOCA='' AMDEPBACKSLASH='\' AMDEP_FALSE='#' AMDEP_TRUE='' AMTAR='$${TAR-tar}' AM_BACKSLASH='\' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' AM_DEFAULT_VERBOSITY='1' AM_V='$(V)' ARCH_ARM_FALSE=''ARCH_ARM_TRUE='' ARCH_PPC_FALSE='' ARCH_PPC_TRUE='' ARCH_x86_64_FALSE='' ARCH_x86_64_TRUE='' ARCH_x86_FALSE='' ARCH_x86_TRUE='' AUTOCONF='${SHELL} /home/mike/cpuminer-2.4.2/missing autoconf' AUTOHEADER='${SHELL} /home/mike/cpuminer-2.4.2/missing autoheader' AUTOMAKE='${SHELL} /home/mike/cpuminer-2.4.2/missing automake-1.14' AWK='gawk' CC='gcc' CCAS='' CCASDEPMODE='' CCASFLAGS='' CCDEPMODE='' CFLAGS='-03' CPP='' CPPFLAGS='' CYGPATH_W='echo' DEFS='' DEPDIR='.deps' ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='' EXEEXT='' GREP='' HAVE_WINDOWS_FALSE='' HAVE_WINDOWS_TRUE='' INSTALL_DATA='${INSTALL} -m 644' INSTALL_PROGRAM='${INSTALL}' INSTALL_SCRIPT='${INSTALL}' INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' JANSSON_LIBS='' LDFLAGS='' LIBCURL='' LIBCURL_CPPFLAGS='' LIBOBJS='' LIBS='' LTLIBOBJS='' MAINT='#' MAINTAINER_MODE_FALSE='' MAINTAINER_MODE_TRUE='#'MAKEINFO='${SHELL} /home/mike/cpuminer-2.4.2/missing makeinfo' MKDIR_P='/bin/mkdir -p' OBJEXT='' PACKAGE='cpuminer' PACKAGE_BUGREPORT='' PACKAGE_NAME='cpuminer' PACKAGE_STRING='cpuminer 2.4.2' PACKAGE_TARNAME='cpuminer' PACKAGE_URL='' PACKAGE_VERSION='2.4.2' PATH_SEPARATOR=':' PTHREAD_FLAGS='' PTHREAD_LIBS='' RANLIB='' SET_MAKE='' SHELL='/bin/bash' STRIP='' USE_ASM_FALSE='' USE_ASM_TRUE='' VERSION='2.4.2' WANT_JANSSON_FALSE='' WANT_JANSSON_TRUE='' S2_LIBS='' _libcurl_config='' ac_ct_CC='gcc' am__EXEEXT_FALSE='' am__EXEEXT_TRUE='' am__fastdepCCAS_FALSE='' am__fastdepCCAS_TRUE='' am__fastdepCC_FALSE='' am__fastdepCC_TRUE='' am__include='include' am__isrc='' am__leading_dot='.' am__nodep='_no' am__quote='' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' bindir='${exec_prefix}/bin' build='i686-pc-linux-gnu' build_alias='' build_cpu='i686' build_os='linux-gnu' build_vendor='pc'htmldir='${docdir}' includedir='${prefix}/include' infodir='${datarootdir}/info' install_sh='${SHELL} /home/mike/cpuminer-2.4.2/install-sh' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='${prefix}/var' mandir='${datarootdir}/man' mkdir_p='$(MKDIR_P)' oldincludedir='/usr/include' pdfdir='${docdir}' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' sysconfdir='${prefix}/etc' target='i686-pc-linux-gnu' target_alias='' target_cpu='i686' target_os='linux-gnu' target_vendor='pc' ## ----------- ## ## confdefs.h. ## ## ----------- ## /* confdefs.h */ #define PACKAGE_NAME "cpuminer" #define PACKAGE_TARNAME "cpuminer" #define PACKAGE_VERSION "2.4.2" #define PACKAGE_STRING "cpuminer 2.4.2" #define PACKAGE_BUGREPORT "" #define PACKAGE_URL "" #define PACKAGE "cpuminer" #define VERSION "2.4.2" configure: exit 77
-
ubfan1 almost 9 yearsAre you sure you own the cpuminer-2.4.2 directory?
-
Arul Selvan almost 9 yearsTry the command in quotes to isolate permission issues--- "echo "void main(){printf(\"hello world\n\");}" |gcc -x c - -o /tmp/hello;/tmp/hello" ... once you execute it you should see "hello world" printed on console
-
Mike O almost 9 yearsI used git to get the files and the directory was created, I did not use superuser with git, just git, the directory was created inside my home directory so I think that I do own the directory.
-
Mike O almost 9 yearsyes after I execute echo "void main(){printf(\"hello world\n\");}" |gcc -x c - -o /tmp/hello;/tmp/hello I get hello world
-
Mike O almost 9 yearsthe command that was run is at the very top were it says used then the command
-
Mike O almost 9 yearsmy bad, thought I had pasted it in, adding it now....
-
Guilherme Milhomem over 5 yearsKeep a look on gcc optimization guide on how to use gcc or g++ flags on Gentoo wiki: wiki.gentoo.org/wiki/GCC_optimization
-
-
Mike O almost 9 yearslibc6-dev is already the newest version.
-
Colin Watson almost 9 yearsIn that case, look at the config.log file, which should have information on what went wrong.
-
Mike O almost 9 yearsthe output of the config.log is at the top in the original post
-
Mike O almost 9 yearsmy bad, thought I had pasted config.log in originally, is added now.......
-
Mike O almost 9 yearstried the newer version first and it failed so i removed that and tried this version and it failed so i figured there was some other problem. thanks for the fix