how to fix configure: error: C compiler cannot create executables

248,279

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.

Share:
248,279

Related videos on Youtube

Mike O
Author by

Mike O

Updated on September 18, 2022

Comments

  • Mike O
    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
      ubfan1 almost 9 years
      Are you sure you own the cpuminer-2.4.2 directory?
    • Arul Selvan
      Arul Selvan almost 9 years
      Try 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
      Mike O almost 9 years
      I 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
      Mike O almost 9 years
      yes after I execute echo "void main(){printf(\"hello world\n\");}" |gcc -x c - -o /tmp/hello;/tmp/hello I get hello world
    • Mike O
      Mike O almost 9 years
      the command that was run is at the very top were it says used then the command
    • Mike O
      Mike O almost 9 years
      my bad, thought I had pasted it in, adding it now....
    • Guilherme Milhomem
      Guilherme Milhomem over 5 years
      Keep 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
    Mike O almost 9 years
    libc6-dev is already the newest version.
  • Colin Watson
    Colin Watson almost 9 years
    In that case, look at the config.log file, which should have information on what went wrong.
  • Mike O
    Mike O almost 9 years
    the output of the config.log is at the top in the original post
  • Mike O
    Mike O almost 9 years
    my bad, thought I had pasted config.log in originally, is added now.......
  • Mike O
    Mike O almost 9 years
    tried 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