configure: errore: il compilatore C non può creare eseguibili


141

Ho verificato una serie di domande simili su StackOverflow ma non ho ancora trovato una risposta.

Sto cercando di installare memcached su Lion OSX come mostrato qui .

Ecco cosa sto ottenendo:

j-court-demones-macbook-pro:libevent-1.4.12-stable jcourtdemone$ ./configure; make
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... 
configure: error: in `/tmp/libevent-1.4.12-stable':
configure: error: C compiler cannot create executables
See `config.log' for more details.
make: *** No targets specified and no makefile found.  Stop.

Ho reinstallato Xcode come era raccomandato in un paio di posti, ma nessun dado.

Ecco il mio config.log:

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.63.  Invocation command line was

  $ ./configure 

## --------- ##
## Platform. ##
## --------- ##

hostname = j-court-demones-macbook-pro.local
uname -m = x86_64
uname -r = 11.3.0
uname -s = Darwin
uname -v = Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64

/usr/bin/uname -p = i386
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = Mach kernel version:
     Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64
Kernel configured for up to 8 processors.
4 processors are physically available.
8 processors are logically available.
Processor type: i486 (Intel 80486)
Processors active: 0 1 2 3 4 5 6 7
Primary memory available: 4.00 gigabytes
Default processor set: 109 tasks, 599 threads, 8 processors
Load average: 0.98, Mach factor: 7.01
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /opt/local/bin
PATH: /opt/local/sbin
PATH: /opt/local/bin
PATH: /opt/local/sbin
PATH: /usr/bin
PATH: /Developer/usr/bin
PATH: /usr/bin
PATH: /bin
PATH: /usr/sbin
PATH: /sbin
PATH: /usr/local/bin
PATH: /usr/X11/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2077: checking for a BSD-compatible install
configure:2145: result: /usr/bin/install -c
configure:2156: checking whether build environment is sane
configure:2199: result: yes
configure:2224: checking for a thread-safe mkdir -p
configure:2263: result: ./install-sh -c -d
configure:2276: checking for gawk
configure:2306: result: no
configure:2276: checking for mawk
configure:2306: result: no
configure:2276: checking for nawk
configure:2306: result: no
configure:2276: checking for awk
configure:2292: found /usr/bin/awk
configure:2303: result: awk
configure:2314: checking whether make sets $(MAKE)
configure:2336: result: yes
configure:2575: checking for gcc
configure:2591: found /Developer/usr/bin/gcc
configure:2602: result: gcc
configure:2834: checking for C compiler version
configure:2842: gcc --version >&5
i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5484)
Copyright (C) 2005 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:2846: $? = 0
configure:2853: gcc -v >&5
Using built-in specs.
Target: i686-apple-darwin9
Configured with: /var/tmp/gcc/gcc-5484~1/src/configure --disable-checking -enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.0/ --with-gxx-include-dir=/include/c++/4.0.0 --with-slibdir=/usr/lib --build=i686-apple-darwin9 --with-arch=apple --with-tune=generic --host=i686-apple-darwin9 --target=i686-apple-darwin9
Thread model: posix
gcc version 4.0.1 (Apple Inc. build 5484)
configure:2857: $? = 0
configure:2864: gcc -V >&5
gcc-4.0: argument to `-V' is missing
configure:2868: $? = 1
configure:2891: checking for C compiler default output file name
configure:2913: gcc    conftest.c  >&5
ld: library not found for -lcrt1.10.5.o
collect2: ld returned 1 exit status
configure:2917: $? = 1
configure:2955: result: 
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "libevent"
| #define VERSION "1.4.12-stable"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:2961: error: in `/tmp/libevent-1.4.12-stable':
configure:2964: error: C compiler cannot create executables
See `config.log' for more details.

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_F77_set=
ac_cv_env_F77_value=
ac_cv_env_FFLAGS_set=
ac_cv_env_FFLAGS_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_path_install='/usr/bin/install -c'
ac_cv_prog_AWK=awk
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_make_make_set=yes

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} /tmp/libevent-1.4.12-stable/missing --run aclocal-1.10'
AMDEPBACKSLASH=''
AMDEP_FALSE=''
AMDEP_TRUE=''
AMTAR='${SHELL} /tmp/libevent-1.4.12-stable/missing --run tar'
AR=''
AUTOCONF='${SHELL} /tmp/libevent-1.4.12-stable/missing --run autoconf'
AUTOHEADER='${SHELL} /tmp/libevent-1.4.12-stable/missing --run autoheader'
AUTOMAKE='${SHELL} /tmp/libevent-1.4.12-stable/missing --run automake-1.10'
AWK='awk'
BUILD_WIN32_FALSE=''
BUILD_WIN32_TRUE=''
CC='gcc'
CCDEPMODE=''
CFLAGS=''
CPP=''
CPPFLAGS=''
CXX=''
CXXCPP=''
CXXDEPMODE=''
CXXFLAGS=''
CYGPATH_W='echo'
DEFS=''
DEPDIR=''
DSYMUTIL=''
ECHO='/bin/echo'
ECHO_C='\c'
ECHO_N=''
ECHO_T=''
EGREP=''
EXEEXT=''
F77=''
FFLAGS=''
GREP=''
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIBTOOL=''
LIBTOOL_DEPS=''
LN_S=''
LTLIBOBJS=''
MAKEINFO='${SHELL} /tmp/libevent-1.4.12-stable/missing --run makeinfo'
MKDIR_P='./install-sh -c -d'
NMEDIT=''
OBJEXT=''
PACKAGE='libevent'
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
RANLIB=''
SED=''
SET_MAKE=''
SHELL='/bin/sh'
STRIP=''
VERSION='1.4.12-stable'
ac_ct_CC='gcc'
ac_ct_CXX=''
ac_ct_F77=''
am__fastdepCC_FALSE=''
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE=''
am__fastdepCXX_TRUE=''
am__include=''
am__isrc=''
am__leading_dot='.'
am__quote=''
am__tar='${AMTAR} chof - "$$tardir"'
am__untar='${AMTAR} xf -'
bindir='${exec_prefix}/bin'
build=''
build_alias=''
build_cpu=''
build_os=''
build_vendor=''
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE}'
dvidir='${docdir}'
exec_prefix='NONE'
host=''
host_alias=''
host_cpu=''
host_os=''
host_vendor=''
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='$(SHELL) /tmp/libevent-1.4.12-stable/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='$(top_builddir)/./install-sh -c -d'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr/local'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define PACKAGE "libevent"
#define VERSION "1.4.12-stable"

configure: exit 77

2
Per salvare le persone a caccia nel tuo registro, il vero errore è:ld: library not found for -lcrt1.10.5.o
Greg Hewgill,

1
La domanda è: hai mai compilato qualcos'altro su questa macchina prima o è la prima volta?
Greg Hewgill,

1
Temo che questa domanda non sia realmente legata alla programmazione , ma piuttosto sull'installazione del software . Se non sai nulla della programmazione, allora ci sono posti migliori per trovare il tipo di aiuto che stai cercando.
Greg Hewgill,

2
Non sono sicuro di essere d'accordo con il giudizio "non relativo alla programmazione". Il suo problema sembra essere quello di avere gli strumenti di sviluppo installati e configurati ("ovviamente, pensavo che fossero installati di default su Lion). In tal caso, si tratterebbe di "strumenti unici per la professione di programmatore" o di ciò che dice la FAQ.
dmckee --- ex-moderatore gattino

4
Ho trovato questo articolo perché sto riscontrando un problema molto simile nel tentativo di creare una libreria iOS su una macchina su cui sto sicuramente programmando da tempo. Mi sembra molto valido!
Andy Dent,

Risposte:


117

Hai una vecchia serie di strumenti per sviluppatori. gcc sta riportando la sua versione come 4.0.1. Ciò può essere lasciato dalla migrazione da una versione precedente del sistema operativo. Se hai installato Xcode 4.3.x, devi avviarlo, andare nelle sue preferenze, selezionare la scheda Download e fare clic su "Installa" accanto al pacchetto Strumenti da riga di comando.


4
Se stai leggendo questa risposta, questo è sicuramente qualcosa che dovresti fare, ma tieni presente che non risolverà il tuo problema con altri pacchetti che stai cercando di creare. Quindi prima installa gli strumenti da riga di comando, quindi vedi la risposta sotto di @sterescott e questo dovrebbe occuparsi dei tuoi problemi. Alcuni pacchetti come mod_jk usano /usr/sbin/apxs -q CCin configure per richiedere il compilatore C. APXS lo sputa, ma ha la strada sbagliata, ecco perché continui a ricevere errori.
Adrian Rodriguez,

1
Ciò ha aiutato, ma la correzione finale è arrivata da qui: glenscott.co.uk/blog/2011/08/29/…
Jazzy

1
I pacchetti di strumenti della riga di comando sono ora disponibili su: developer.apple.com/downloads
Danny D'Amours,

3
In Xcode 7 gli strumenti da riga di comando si trovano nella scheda Posizioni. Nel mio caso ho risolto il problema con l'installazione di Python selezionando Xcode 7.3.1
Marco Pelegrini,

Se qualcuno lo sta leggendo nel 2017 o in seguito, è necessario impostare la data di sistema su febbraio 2013 o si verificherà un errore che afferma che il pkg Bluetooth non è affidabile. Qualche problema con un certificato scaduto.
Johannes Jander,

140

Ho installato 10.8 e Xcode 4.4 con gli strumenti da riga di comando, eppure continuavo a riscontrare questo errore. Invece di reinstallare Xcode, ho notato che c'erano due righe rilevanti nel mio config.log:

configure:5130: checking for C compiler version
configure:5139: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc --version >&5

Quel percorso non esisteva per me. Invece ho avuto:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain

Il compilatore C ("cc") si trova all'interno di quella directory xctoolchain. Ho creato un collegamento simbolico per OSX10.8.xctoolchain per puntare a XcodeDefault.xctoolchain e questo è stato risolto. Ora lo script di installazione memcached può trovare la versione del compilatore e continuare sulla sua strada.

cd /Applications/Xcode.app/Contents/Developer/Toolchains
sudo ln -s XcodeDefault.xctoolchain OSX10.8.xctoolchain

Come suggerito nei commenti, se si riscontra questo problema su Yosemite (10.10) o Mavericks (10.9), è possibile aggiornare il comando symlink sopra per puntare a quella versione specifica ( OSX10.9.xctoolchaino OSX10.10.xctoolchain).


4
Questo ha funzionato per me, grazie! Ho una nuova installazione di OSX 10.8 e gli ultimi Xcode + Command Line Tools, quindi questo non sembra essere stato un problema relativo all'aggiornamento di OSX.
Earldouglas,

1
@James Ottimo punto. Anch'io ho avuto una nuova installazione di OSX 10.8.
stereoscott,

1
cd /Applications/Xcode.app/Contents/Developer/Toolchains;sudo ln -s XcodeDefault.xctoolchain OSX10.8.xctoolchain
Jonathan Larson

Questo non ha funzionato per me. Ciò che ha funzionato per me è stato l'aggiornamento dei miei strumenti da riga di comando (consultare stackoverflow.com/a/19993810/130664 ).
Raam Dev,

2
Stessa cosa su Mavericks: sudo ln -s XcodeDefault.xctoolchain OSX10.9.xctoolchain
izilotti

69

Quando viene visualizzato questo messaggio di errore, potresti non aver ancora accettato l' accordo di licenza Xcode dopo un aggiornamento.

Prima di tutto, assicurati di aver aggiornato i tuoi strumenti da riga di comando:

$ xcode-select --install

Ora Apple vuole che accetti la loro licenza prima di poter utilizzare questi strumenti:

$ gcc
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

$ sudo gcc
You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode.
[...]

Dopo averlo accettato, gli strumenti della riga di comando funzioneranno come previsto.


2
Questo ha funzionato per me; Xcode è stato installato (installazione pulita di Mavericks) ma gli strumenti da riga di comando non sono stati installati automaticamente.
GESii il

Questo ha funzionato magnificamente per me. Stavo installando iperf3 e continuavo a ricevere l'errore: "il compilatore c non può installare eseguibili". Ho usato "xcode-select --install" e ha funzionato perfettamente.
Blairg23,

Questo sembra risolvere il problema su Yosemite; anche se XCode 6 ora viene fornito con gli strumenti di comando preinstallati e potrei eseguire clang dalla riga di comando, ./configure non è riuscito finché non ho eseguito xcode-select
sapi

Alcuni aggiornamenti di sistema / sicurezza sembrano disabilitare l'accordo di licenza e devi ripetere questo passaggio.
Matt Sanders,

È successo dopo un'installazione beta di El Capitan.
Joel Day

13

Avevo già installato gli strumenti da riga di comando in xcode ma il mio continuava a essere errato su:

line 3619: /usr/bin/gcc-4.2: No such file or directory

Quando sono entrato which gccè tornato

/usr/bin/gcc

Quando sono entrato gcc -vho avuto un sacco di cose allora

..  
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)

Quindi ho creato un link simbolico:

cd /usr/bin
sudo ln -s gcc gcc-4.2

E ha funzionato!

(il file config.log si trova nella directory che make sta cercando di creare qualcosa)


In config.log ho visto che CC = '/ usr / bin / gcc-4.2' ma ho fatto un ls della directory e non c'era nulla. Quindi era abbastanza chiaro in questo modo il problema. Ho creato il collegamento simbolico e BAM! Tutto bene.
james2doyle,

1
Dopo molte ricerche questo è esattamente il trucco di cui avevo bisogno! Grazie
HSeldon il

12

Ho appena avuto questo problema con Apache. La soluzione che ho usato era la stessa di Mostafa, ho dovuto esportare 2 variabili:

export CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
CPP='/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -E'

Questo era un Mac OSX Mavericks


Grazie, ha funzionato su OS X per ./configure
Art

5

Per prima cosa ottieni il percorso gcc usando

Comando: quale gcc

Uscita: / usr / bin / gcc

Ho avuto lo stesso problema, si prega di impostare il percorso gcc nel comando seguente e installare

CC = / usr / bin / gcc rvm install 1.9.3

Più tardi, se ottieni " Ruby è stato creato senza documentazione ", esegui il comando seguente

rvm docs generate-ri


Funziona anche su High Sierra
Artur79

4

Per me è stato un problema con gcc, evidenziato da gcc -v. Recentemente è stato l'aggiornamento di Xcode che questo post ha detto di aver sudo xcode-select -switch /Applications/Xcode.apprisolto il problema.


4

L'impostazione di 'clang' come configurazione del compilatore dovrebbe funzionare per me:

export CC=clang
pip install --no-clean pycrypto

2

Se qualcuno viene qui perché RVM / Ruby sta creando problemi (Middleman / Grunt) ho risolto il mio problema.

PS. La risposta di steroscott ha risolto il problema un po 'di tempo fa ... questa volta non è il caso.

Nel mio caso rvm sta cercando di usare un gcc scaricato tramite homebrew. Ho eseguito una disinstallazione brew di gcc (gcc46 per me) e ho riprovato il codice per l'installazione di ruby ​​(vecchio progetto vecchio ruby ​​v)

$ brew uninstall gcc46

$ rvm install 1.9.3

durante quel processo di verifica dei requisiti ha automaticamente recuperato un nuovo gcc per me e boom, tutto funziona ora. Oh, una grande nota, l'installazione di gcc dal comando rvm può richiedere circa 10-15 minuti senza eliminare alcun testo, non è congelata :) Buona fortuna


Il messaggio importante di rbenv è stato per me: per la maggior parte dei programmi il llvm-gcccompilatore funziona bene. Tuttavia, le versioni di Ruby precedenti alla 1.9.3-p125 sono incompatibili con llvm-gcc. Per compilare versioni precedenti di Ruby devi avere il compilatore GCC ufficiale installato sul tuo sistema. PER FISSARE IL PROBLEMA: Installa il pacchetto apple-gcc42 di Homebrew con questo comando: brew tap homebrew / dupes; brew install apple-gcc42
schmijos

2

Ho letto furiosamente tutta questa pagina, sperando di trovare una soluzione per:

"configure: error: C compiler cannot create executables"

Alla fine non ha funzionato nulla, perché il mio problema era di "battitura" ed era correlato a CFLAGS. Nel mio file .bash_profile avevo:

export ARM_ARCH="arm64”
export CFLAGS="-arch ${ARM_ARCH}"

Come puoi osservare --- export ARM_ARCH = "arm64" --- l'ultimo segno di virgolette non è lo stesso con il primo segno di virgolette. Il primo (") è legale mentre il secondo (") non lo è.
Questo è successo perché ho fatto l'errore di usare TextEdit (sto lavorando con MacOS), e questa è apparentemente una funzionalità chiamata SmartQuotes: il segno di virgolette CAMBIA DA SE STESSO ALLO STILE ILLEGALE ogni volta che modifichi qualcosa proprio accanto ad esso.
Lezione imparata: utilizzare un editor di testo adeguato ...


0

Nel mio caso, ho provato, xcode-select --installma dice che non è disponibile dal negozio. Quindi, ispirato da Rimian, ho controllato il mio gcc:gcc -v e poi ho ricevuto un messaggio che diceva che non avevo accettato.

Da quel momento ho appena seguito la procedura di accordo da gcc -v, dopo aver concordato che funziona bene per me.


0

Assicurati che non ci siano spazi nel nome dell'applicazione Xcode (può succedere se mantieni le versioni precedenti, ad esempio rinominandolo 'Xcode 4.app'); gli strumenti di costruzione verranno indicati nei percorsi del bundle Xcode e molti script non sono in grado di gestire correttamente i riferimenti con spazi.


0

Informazioni su clang Compilatore iOS

Ho scoperto che il problema era miphoneos-version-min=5.0. Mi sono cambiato in miphoneos-version-min=8.0. Ora funziona.

Voglio solo suggerire di usare creare un semplice file test.c e compilarlo dal comando scrivere nel registro.


0

Ho appena avuto questo problema durante la creazione di un'app Reazione-nativa quando provo ad installare Pod. Ho dovuto esportare 2 variabili:

export CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
CPP='/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -E'

0

Assicura che il percorso del bundle Xcode.app sia senza spazio o caratteri strani. Ho Xcode installato nella cartella ~ / Downloads / Last Dev Tools /, quindi con gli spazi e la ridenominazione della cartella in LastDevTools risolto questo problema (dopo aver resettato xcode-select -p)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.