configure: error: el compilador de C no puede crear ejecutables

141

He comprobado una serie de preguntas similares en stackoverflow pero aún no he encontrado una respuesta.

Estoy tratando de instalar memcached en Lion OSX como se muestra aquí .

Esto es lo que obtengo:

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.

He reinstalado Xcode como se recomendó en un par de lugares, pero sin dados.

Aquí está mi 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
CourtDemone
fuente
2
Para salvar a las personas que buscan en su registro, el error real es:ld: library not found for -lcrt1.10.5.o
Greg Hewgill
1
La pregunta es, ¿alguna vez has compilado algo más en esta máquina antes, o es la primera vez?
Greg Hewgill
1
Me temo que esta pregunta no está realmente relacionada con la programación , sino más sobre la instalación de software . Si no sabe nada sobre programación, entonces hay mejores lugares para encontrar el tipo de ayuda que está buscando.
Greg Hewgill
2
No estoy seguro de estar de acuerdo con el juicio "no relacionado con la programación". El problema parece ser uno de tener las herramientas de desarrollo instaladas y configuradas (por supuesto, pensé que estaban instaladas por defecto en Lion). Si ese es el caso, se trataría de "herramientas exclusivas de la profesión de programación" o lo que sea que dice la pregunta frecuente.
dmckee --- gatito ex moderador
44
Encontré este artículo porque estoy experimentando un problema muy similar al intentar construir una biblioteca de iOS en una máquina en la que definitivamente he estado programando durante algún tiempo. ¡Parece muy válido para mí!
Andy Dent

Respuestas:

117

Tienes un antiguo conjunto de herramientas de desarrollador. gcc informa su versión como 4.0.1. Esto puede ser el resultado de la migración desde una versión anterior del sistema operativo. Si ha instalado Xcode 4.3.x, debe iniciarlo, acceder a sus preferencias, seleccionar la pestaña Descargas y hacer clic en "Instalar" junto al paquete de Herramientas de línea de comandos.

Ken Thomases
fuente
44
Si está leyendo esta respuesta, definitivamente es algo que debe hacer, pero tenga en cuenta que no resolverá su problema con otros paquetes que está intentando construir. Así que primero instale las herramientas de línea de comando y luego vea la respuesta a continuación por @sterescott y eso debería solucionar sus problemas. Algunos paquetes como mod_jk usan /usr/sbin/apxs -q CCen configure para solicitar el compilador de C. APXS lo escupe, pero tiene el camino equivocado, por eso sigue recibiendo errores.
Adrián Rodríguez
1
Esto ayudó, pero la solución final vino de aquí: glenscott.co.uk/blog/2011/08/29/…
Jazzy
1
Los paquetes de herramientas de línea de comandos ahora están disponibles en: developer.apple.com/downloads
Danny D'Amours
3
En Xcode 7, las Herramientas de línea de comandos se encuentran en la pestaña Ubicaciones. En mi caso, solucioné el problema al instalar Python seleccionando Xcode 7.3.1
Marco Pelegrini el
Si alguien está leyendo esto en 2017 o más tarde, debe configurar la fecha del sistema de nuevo a febrero de 2013 o habrá un error al afirmar que el paquete Bluetooth no es de confianza. Algún problema con un certificado caducado.
Johannes Jander
140

Tengo 10.8 instalado y Xcode 4.4 con herramientas de línea de comandos, y aún recibo este error. En lugar de reinstalar Xcode, noté que había dos líneas relevantes en mi 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

Ese camino no existía para mí. En cambio tuve:

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

El compilador de C ("cc") se encuentra dentro de ese directorio xctoolchain. Creé un enlace simbólico para OSX10.8.xctoolchain para apuntar a XcodeDefault.xctoolchain y eso lo solucionó. Ahora el script de instalación de memcached puede encontrar la versión del compilador y continuar su camino.

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

Como se sugiere en los comentarios, si tiene este problema en Yosemite (10.10) o Mavericks (10.9), puede actualizar el comando de enlace simbólico anterior para señalar esa versión específica ( OSX10.9.xctoolchaino OSX10.10.xctoolchain).

Stereoscott
fuente
44
Esto funcionó para mí, gracias! Tengo una nueva instalación de OSX 10.8 y las últimas herramientas de línea de comandos Xcode +, por lo que no parece haber sido un problema relacionado con la actualización de OSX.
Earldouglas
1
@ James Gran punto. Yo también tuve una nueva instalación de OSX 10.8.
stereoscott
1
cd /Applications/Xcode.app/Contents/Developer/Toolchains;sudo ln -s XcodeDefault.xctoolchain OSX10.8.xctoolchain
Jonathan Larson
Esto no funcionó para mí. Lo que funcionó para mí fue actualizar mis herramientas de línea de comandos (consulte stackoverflow.com/a/19993810/130664 ).
Raam Dev
2
Lo mismo en Mavericks: sudo ln -s XcodeDefault.xctoolchain OSX10.9.xctoolchain
izilotti
69

Cuando vea este mensaje de error, es posible que aún no haya aceptado el acuerdo de licencia de Xcode después de una actualización.

En primer lugar, asegúrese de haber actualizado sus herramientas de línea de comandos:

$ xcode-select --install

Ahora Apple quiere que aceptes su licencia antes de poder usar estas herramientas:

$ 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.
[...]

Después de haberlo aceptado, las herramientas de línea de comandos funcionarán como se espera.

Konrad
fuente
2
Esto funcionó para mí; Se instaló Xcode (instalación limpia de Mavericks) pero las herramientas de línea de comandos no se instalaron automáticamente.
JESii
Esto funcionó muy bien para mí. Estaba instalando iperf3 y seguía recibiendo el error: "el compilador c no puede instalar ejecutables". Usé "xcode-select --install" y funcionó perfectamente.
Blairg23
Esto parece solucionar el problema en Yosemite; a pesar de que XCode 6 ahora viene con las herramientas de comando preinstaladas, y pude ejecutar clang desde la línea de comando, ./configure falló hasta que ejecuté xcode-select
sapi
Algunas actualizaciones del sistema / seguridad parecen deshabilitar el acuerdo de licencia y usted debe seguir este paso nuevamente.
Matt Sanders el
Sucedió después de una instalación beta de El Capitan.
Joel Day
13

Ya había instalado las herramientas de la línea de comandos en xcode pero la mía todavía tenía errores:

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

Cuando entré which gccregresó

/usr/bin/gcc

Cuando entré gcc -vme dieron un montón de cosas

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

Entonces creé un enlace simbólico:

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

¡Y funcionó!

(el archivo config.log se encuentra en el directorio que make está intentando construir algo)

Rimian
fuente
En config.log vi que CC = '/ usr / bin / gcc-4.2' pero hice un ls del directorio y no había nada. Así quedó bastante claro de esta manera el problema. ¡Creé el enlace simbólico y BAM! Todo bien.
james2doyle
1
¡Después de mucho buscar, este es exactamente el truco que necesitaba! Acción de Gracias
HSeldon
12

Acabo de tener este problema construyendo apache. La solución que usé fue la misma que Mostafa, tuve que exportar 2 variables:

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'

Este fue un Mac OSX Mavericks

David Williams
fuente
Gracias, esto funcionó en OS X para ejecutar ./configureApache
Art
5

Primero obtenga la ruta gcc usando

Comando: que gcc

Salida: / usr / bin / gcc

Tuve el mismo problema, configure la ruta gcc en el siguiente comando e instálelo

CC = / usr / bin / gcc rvm install 1.9.3

Más tarde, si aparece " Ruby se creó sin documentación ", ejecute el siguiente comando

rvm docs generate-ri

Gurudath BN
fuente
También funciona en High Sierra
Artur79
4

Para mí fue un problema con gcc, resaltado por gcc -v. Fue debido a la actualización de Xcode recientemente que esta publicación dijo sudo xcode-select -switch /Applications/Xcode.appque solucionó el problema.

Homerjam
fuente
3

La configuración de 'clang' como la configuración del compilador debería funcionar para mí:

export CC=clang
pip install --no-clean pycrypto
yndolok
fuente
2

Si alguien viene aquí porque RVM / Ruby está creando problemas (Middleman / Grunt), he resuelto mi problema.

PD. La respuesta de steroscott solucionó mi problema hace un tiempo ... esta vez no es el caso.

En mi caso, rvm está tratando de usar un gcc descargado a través de homebrew. Ejecuté una desinstalación de gcc (gcc46 para mí) y volví a crear el código para la instalación de ruby ​​(proyecto anterior, ruby ​​v antiguo)

$ brew uninstall gcc46

$ rvm install 1.9.3

durante ese proceso de verificación de requisitos, obtuvo automáticamente un nuevo gcc para mí y boom, todo está funcionando ahora. Oh, una gran nota, la instalación de gcc desde el comando rvm puede tomar alrededor de 10-15 minutos sin tirar ningún texto, no está congelado :) Buena suerte

jasonsemko
fuente
El mensaje importante de rbenv fue para mí: para la mayoría de los programas, el llvm-gcccompilador funciona bien. Sin embargo, las versiones de Ruby anteriores a 1.9.3-p125 son incompatibles con llvm-gcc. Para compilar versiones anteriores de Ruby, debe tener el compilador oficial de GCC instalado en su sistema. PARA ARREGLAR EL PROBLEMA: Instale el paquete apple-gcc42 de Homebrew con este comando: brew tap homebrew / dupes; instalar brew apple-gcc42
schmijos
2

Leí furiosamente toda esta página, esperando encontrar una solución para:

"configure: error: C compiler cannot create executables"

Al final, nada funcionó, porque mi problema era "tipear" y estaba relacionado con CFLAGS. En mi archivo .bash_profile tenía:

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

Como puede observar --- exportar ARM_ARCH = "arm64” --- el último signo de cotización no es el mismo que el primer signo de cotización. El primero (") es legal mientras que el segundo (”) no lo es.
Esto sucedió porque cometí el error de usar TextEdit (estoy trabajando en MacOS), y aparentemente esta es una característica llamada SmartQuotes: el signo de comillas CAMBIA POR SÍ MISMO AL ESTILO ILEGAL cada vez que edita algo junto a él.
Lección aprendida: use un editor de texto adecuado ...

Florin Odagiu
fuente
0

En mi caso, lo intenté xcode-select --installpero dice que no está disponible en la tienda. Luego, inspirado por Rimian, revisé mi gcc: gcc -vy luego recibí un mensaje que decía que no agregué.

A partir de ese momento, acabo de seguir el proceso del acuerdo gcc -v, después de aceptar que funciona bien para mí.

Vasija
fuente
0

Asegúrese de que no haya espacios en el nombre de su aplicación Xcode (puede suceder si mantiene versiones anteriores, por ejemplo, renombrándola como 'Xcode 4.app'); Se hará referencia a las herramientas de compilación dentro de las rutas del paquete Xcode, y muchos scripts no pueden manejar referencias con espacios correctamente.

codificadorSeb
fuente
0

Acerca del compilador cruzado de clang iOS

He descubierto que el problema estaba en miphoneos-version-min=5.0. He cambiado a miphoneos-version-min=8.0. Ahora funciona.

Solo quiero sugerir usar crear un archivo simple test.c y compilarlo mediante el comando escribir en el registro.

Vyacheslav
fuente
0

Acabo de tener este problema al crear una aplicación nativa de reacción cuando intento instalar Pod. Tuve que exportar 2 variables:

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'
Fabio Valencio
fuente
0

Asegura que la ruta al paquete Xcode.app no ​​tenga espacio ni caracteres extraños. Tengo Xcode instalado en la carpeta ~ / Downloads / Last Dev Tools /, así que con los espacios y el cambio de nombre de la carpeta a LastDevTools solucioné esto (después de restablecer xcode-select -p)

Altimac
fuente