configure: error: O compilador C não pode criar executáveis

141

Verifiquei várias perguntas semelhantes no stackoverflow, mas ainda não encontrei uma resposta.

Estou tentando instalar o memcached no Lion OSX, como mostrado aqui .

Aqui está o que estou recebendo:

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.

Eu reinstalei o Xcode como recomendado em alguns lugares, mas não há dados.

Aqui está o meu 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
fonte
2
Para salvar as pessoas de caça através de seu log, o erro real é:ld: library not found for -lcrt1.10.5.o
Greg Hewgill
1
A questão é: você já compilou alguma coisa nesta máquina antes ou é a primeira vez?
precisa saber é o seguinte
1
Receio que esta questão não esteja realmente relacionada à programação , mas mais sobre a instalação do software . Se você não sabe nada sobre programação, há lugares melhores para encontrar o tipo de ajuda que está procurando.
precisa saber é o seguinte
2
Não tenho certeza se concordo com o julgamento "não relacionado à programação". O problema dela parece ser uma das ferramentas para desenvolvedores instaladas e configuradas (é claro, eu pensei que elas foram instaladas por padrão no Lion). Se for esse o caso, seriam "ferramentas exclusivas para a profissão de programador" ou o que quer que seja o que a FAQ diz.
dmckee --- ex-moderador gatinho
4
Encontrei este item porque estou enfrentando um problema muito semelhante ao tentar criar uma biblioteca iOS em uma máquina na qual definitivamente programo há algum tempo. Parece muito válido para mim!
Andy Dent

Respostas:

117

Você tem um conjunto antigo de ferramentas de desenvolvedor. O gcc está relatando sua versão como 4.0.1. Isso pode ser o resultado da migração de uma versão mais antiga do sistema operacional. Se você instalou o Xcode 4.3.x, é necessário iniciá-lo, acessar suas preferências, selecionar a guia Downloads e clicar em "Instalar" ao lado do pacote Command Line Tools.

Ken Thomases
fonte
4
Se você está lendo esta resposta, é definitivamente algo que deve fazer, mas lembre-se de que isso não resolverá o problema com outros pacotes que você está tentando criar. Então, primeiro instale as ferramentas de linha de comando e veja a resposta abaixo do @sterescott, e isso deve resolver seus problemas. Alguns pacotes como mod_jk usam /usr/sbin/apxs -q CCno configure para solicitar o compilador C. O APXS divulga, mas tem o caminho errado, e é por isso que você continua recebendo erros.
Adrian Rodriguez
1
Isso ajudou, mas a correção final veio daqui: glenscott.co.uk/blog/2011/08/29/…
Jazzy
1
Pacotes de ferramentas de linha de comando agora disponíveis em: developer.apple.com/downloads
Danny D'Amours
3
No Xcode 7, as Ferramentas de Linha de Comando estão localizadas na guia Locais. No meu caso eu corrigiu o problema de instalar python, selecionando Xcode 7.3.1
Marco Pelegrini
Se alguém estiver lendo isso em 2017 ou posterior, defina a data do sistema para fevereiro de 2013 ou ocorrerá um erro alegando que o pacote do Bluetooth não é confiável. Algum problema com um certificado expirado.
Johannes Jander
140

Eu tenho o 10.8 instalado e o Xcode 4.4 com ferramentas de linha de comando, e ainda assim estava recebendo esse erro. Em vez de reinstalar o Xcode, notei que havia duas linhas relevantes no meu 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

Esse caminho não existia para mim. Em vez disso, tive:

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

O compilador C ("cc") está localizado dentro desse diretório xctoolchain. Eu criei um link simbólico para OSX10.8.xctoolchain para apontar para XcodeDefault.xctoolchain e isso foi corrigido. Agora, o script de instalação do memcached pode encontrar a versão do compilador e continuar seu caminho.

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

Conforme sugerido nos comentários, se você está tendo esse problema no Yosemite (10.10) ou Mavericks (10.9), pode atualizar o comando symlink acima para apontar para essa versão específica ( OSX10.9.xctoolchainou OSX10.10.xctoolchain).

stereoscott
fonte
4
Isso funcionou para mim, obrigado! Eu tenho uma nova instalação do OSX 10.8 e as mais recentes ferramentas de linha de comando do Xcode +, portanto, isso não parece ter sido um problema relacionado à atualização do OSX.
earldouglas
1
@ James Grande ponto. Eu também tive uma nova instalação do OSX 10.8.
stereoscott
1
cd /Applications/Xcode.app/Contents/Developer/Toolchains;sudo ln -s XcodeDefault.xctoolchain OSX10.8.xctoolchain
Jonathan Larson
Isto não funcionou para mim. O que funcionou para mim foi atualizar minhas ferramentas de linha de comando (consulte stackoverflow.com/a/19993810/130664 ).
Raam Dev 21/02
2
A mesma coisa em em Mavericks: sudo ln -s XcodeDefault.xctoolchain OSX10.9.xctoolchain
izilotti
69

Quando você vê essa mensagem de erro, talvez ainda não tenha aceito o contrato de licença do Xcode após uma atualização.

Primeiro de tudo, verifique se você atualizou suas ferramentas de linha de comando:

$ xcode-select --install

Agora, a Apple deseja que você concorde com a licença deles antes de poder usar estas ferramentas:

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

Após a aceitação, as ferramentas da linha de comando funcionarão conforme o esperado.

Konrad
fonte
2
Isso funcionou para mim; O Xcode foi instalado (instalação limpa do Mavericks), mas as ferramentas de linha de comando não foram instaladas automaticamente.
JESii
Isso funcionou lindamente para mim. Eu estava instalando o iperf3 e continuava recebendo o erro: "O compilador c não pode instalar os executáveis". Eu usei o "xcode-select --install" e funcionou perfeitamente.
Blairg23
Isso parece corrigir o problema em Yosemite; embora XCode 6 agora vem com as ferramentas de comando de pré-instalado, e eu poderia correr clang a partir da linha de comando, ./configure falhou até que eu corri xcode-select
sapi
Algumas atualizações de sistema / segurança parecem desabilitar o contrato de licença e você deve executar esta etapa novamente.
Matt Sanders
Aconteceu após uma instalação beta do El Capitan.
Joel Day
13

Eu já havia instalado as ferramentas de linha de comando no xcode, mas o meu ainda estava errado:

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

Quando entrei which gcc, retornei

/usr/bin/gcc

Quando entrei gcc -v, peguei um monte de coisas então

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

Então eu criei um link simbólico:

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

E funcionou!

(o arquivo config.log está localizado no diretório que make está tentando criar algo)

Rimian
fonte
No config.log, vi que CC = '/ usr / bin / gcc-4.2', mas fiz um ls do diretório e não havia nada. Portanto, ficou bem claro o problema. Eu criei o link simbólico e o BAM! Tudo bom.
james2doyle
1
Depois de muita pesquisa, esse é exatamente o truque que eu precisava! Thanks-
HSeldon
12

Acabei de ter esse problema criando apache. A solução que usei foi a mesma que Mostafa, tive que exportar 2 variáveis:

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 foi um Mac OSX Mavericks

David Williams
fonte
Obrigado, isso funcionou no OS X para rodar ./configureno Apache
Art
5

Primeiro obtenha o caminho do gcc usando

Comando: qual gcc

Saída: / usr / bin / gcc

Eu tive o mesmo problema. Defina o caminho do gcc no comando abaixo e instale

CC = / usr / bin / gcc rvm install 1.9.3

Posteriormente, se você receber o comando " Ruby foi criado sem documentação ", execute o comando abaixo

rvm docs generate-ri

Gurudath BN
fonte
Obras sobre High Sierra também
Artur79
4

Para mim, foi um problema com o gcc, destacado por gcc -v. A atualização do Xcode foi feita recentemente, e este post disse para sudo xcode-select -switch /Applications/Xcode.appcorrigir o problema.

homerjam
fonte
3

Definir 'clang' como o compilador deve funcionar funcionou para mim:

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

Se alguém está vindo aqui porque o RVM / Ruby está criando problemas (Middleman / Grunt), resolvi o meu problema.

PS. A resposta de steroscott corrigiu meu problema há um tempo ... desta vez não é o caso.

No meu caso, o rvm está tentando usar um gcc baixado via homebrew. Executei uma desinstalação do gcc (gcc46 para mim) e refiz o código novamente para a instalação do ruby ​​(projeto antigo e antigo ruby ​​v)

$ brew uninstall gcc46

$ rvm install 1.9.3

durante esse processo de verificação de requisitos, ele automaticamente buscou um novo gcc para mim e o boom, tudo está funcionando agora. Oh, uma observação importante: a instalação do gcc a partir do comando rvm pode levar de 10 a 15 minutos sem jogar nenhum texto, não está congelada :) Boa sorte

jasonsemko
fonte
A mensagem importante da rbenv foi para mim: para a maioria dos programas, o llvm-gcccompilador funciona bem. No entanto, versões do Ruby anteriores a 1.9.3-p125 são incompatíveis com llvm-gcc. Para criar versões mais antigas do Ruby, você deve ter o compilador GCC oficial instalado no seu sistema. PARA SOLUCIONAR O PROBLEMA: Instale o pacote apple-gcc42 do Homebrew com este comando: brew tap homebrew / dupes; brew install apple-gcc42
schmijos
2

Eu li furiosamente toda esta página, esperando encontrar uma solução para:

"configure: error: C compiler cannot create executables"

No final, nada funcionou, porque meu problema era "digitar" e estava relacionado ao CFLAGS. No meu arquivo .bash_profile eu tinha:

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

Como você pode observar --- export ARM_ARCH = "arm64” --- o último sinal de cotação não é o mesmo que o primeiro sinal de cotação. O primeiro (") é legal enquanto o segundo (”) não é.
Isso aconteceu porque cometi o erro de usar o TextEdit (estou trabalhando no MacOS) e, aparentemente, esse é um recurso chamado SmartQuotes: o sinal de cotação MUDANÇA DE MESMO NO ESTILO ILEGAL sempre que você editar algo próximo a ele.
Lição aprendida: use um editor de texto adequado ...

Florin Odagiu
fonte
0

No meu caso, tentei, xcode-select --installmas diz que não está disponível na loja. Então, inspirado por Rimian, verifiquei meu gcc: gcc -ve recebi uma mensagem dizendo que não concordava.

A partir desse ponto, acabei de seguir o processo de acordo gcc -v, depois de concordar que funciona bem para mim.

C-Rock
fonte
0

Verifique se não há espaços no nome do seu aplicativo Xcode (isso pode acontecer se você mantiver versões antigas - por exemplo, renomeá-lo como 'Xcode 4.app'); As ferramentas de construção serão referenciadas nos caminhos do pacote Xcode, e muitos scripts não podem manipular referências com espaços corretamente.

coderSeb
fonte
0

Sobre o compilador cruzado do iOS clang

Eu descobri que o problema estava em miphoneos-version-min=5.0. Eu mudei para miphoneos-version-min=8.0. Agora funciona.

Eu só quero sugerir o uso de criar um arquivo test.c simples e compilá-lo pelo comando write no log.

Vyacheslav
fonte
0

Acabei de ter esse problema ao criar um aplicativo nativo do react ao tentar instalar o Pod. Eu tive que exportar 2 variáveis:

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
fonte
0

Garante que o caminho para o pacote Xcode.app esteja sem espaço ou caracteres estranhos. Eu tenho o Xcode instalado na pasta ~ / Downloads / Last Dev Tools /, então com espaços e renomear a pasta para LastDevTools corrigimos isso (depois de redefinir o xcode-select -p)

Altimac
fonte