configure: erreur: le compilateur C ne peut pas créer d'exécutables

141

J'ai vérifié un certain nombre de questions similaires sur stackoverflow mais je n'ai pas encore trouvé de réponse.

J'essaye d'installer Memcached sur Lion OSX comme indiqué ici .

Voici ce que je reçois:

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.

J'ai réinstallé Xcode comme recommandé à quelques endroits, mais pas de dés.

Voici mon 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
CourtDémone
la source
2
Pour sauver les gens qui parcourent votre journal, la vraie erreur est:ld: library not found for -lcrt1.10.5.o
Greg Hewgill
1
La question est: avez-vous déjà compilé autre chose sur cette machine, ou est-ce la première fois?
Greg Hewgill
1
J'ai bien peur que cette question ne soit pas vraiment liée à la programmation , mais plutôt à l' installation de logiciels . Si vous ne connaissez rien à la programmation, il existe de meilleurs endroits pour trouver le type d'aide que vous recherchez.
Greg Hewgill
2
Je ne suis pas sûr d'être d'accord avec le jugement "non lié à la programmation". Le problème semble être celui de l'installation et de la configuration des outils de développement (bien sûr, je pensais qu'ils étaient installés par défaut sur Lion). Si tel est le cas, ce serait «des outils uniques à la profession de programmeur» ou quoi que ce soit que dit la FAQ.
dmckee --- ex-moderator chaton
4
J'ai trouvé cet article car je rencontre un problème très similaire en essayant de créer une bibliothèque iOS sur une machine sur laquelle je programme définitivement depuis un certain temps. Cela me semble très valable!
Andy Dent

Réponses:

117

Vous disposez d'un ancien ensemble d'outils de développement. gcc rapporte sa version 4.0.1. Cela peut être dû à la migration d'une ancienne version du système d'exploitation. Si vous avez installé Xcode 4.3.x, vous devez le lancer, aller dans ses préférences, sélectionner l'onglet Téléchargements et cliquer sur "Installer" à côté du package des outils de ligne de commande.

Ken Thomases
la source
4
Si vous lisez cette réponse, c'est certainement quelque chose que vous devriez faire, mais sachez que cela ne résoudra pas votre problème avec les autres paquets que vous essayez de construire. Alors installez d'abord les outils de ligne de commande puis voyez la réponse ci-dessous par @sterescott et cela devrait résoudre vos problèmes. Certains paquets comme mod_jk utilisent /usr/sbin/apxs -q CCdans configure pour demander le compilateur C. APXS le recrache, mais il a le mauvais chemin, c'est pourquoi vous continuez à recevoir des erreurs.
Adrian Rodriguez
1
Cela a aidé, mais le correctif final est venu d'ici: glenscott.co.uk/blog/2011/08/29/…
Jazzy
1
Les packages d'outils de ligne de commande sont maintenant disponibles sur: developer.apple.com/downloads
Danny D'Amours
3
Dans Xcode 7, les outils de ligne de commande se trouvent dans l'onglet Emplacements. Dans mon cas, j'ai résolu le problème d'installation de python en sélectionnant Xcode 7.3.1
Marco Pelegrini
Si quelqu'un lit ceci en 2017 ou plus tard, vous devez redéfinir la date du système sur février 2013 ou il y aura une erreur affirmant que le pkg Bluetooth n'est pas fiable. Un problème avec un certificat expiré.
Johannes Jander
140

J'ai 10.8 installé et Xcode 4.4 avec les outils de ligne de commande, et pourtant j'obtenais toujours cette erreur. Plutôt que de réinstaller Xcode, j'ai remarqué qu'il y avait deux lignes pertinentes dans mon 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

Ce chemin n'existait pas pour moi. Au lieu de cela, j'avais:

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

Le compilateur C ("cc") est situé à l'intérieur de ce répertoire xctoolchain. J'ai créé un lien symbolique pour OSX10.8.xctoolchain pour pointer vers XcodeDefault.xctoolchain et cela l'a corrigé. Maintenant, le script d'installation de Memcached peut trouver la version du compilateur et continuer son chemin.

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

Comme suggéré dans les commentaires, si vous rencontrez ce problème sur Yosemite (10.10) ou Mavericks (10.9), vous pouvez mettre à jour la commande de lien symbolique ci-dessus pour pointer vers cette version spécifique ( OSX10.9.xctoolchainou OSX10.10.xctoolchain).

stéréoscott
la source
4
Cela a fonctionné pour moi, merci! J'ai une nouvelle installation d'OSX 10.8 et des derniers outils de ligne de commande Xcode +, donc cela ne semble pas avoir été un problème lié à la mise à niveau d'OSX.
earldouglas
1
@James Excellent point. J'ai moi aussi eu une nouvelle installation d'OSX 10.8.
stéréoscott
1
cd /Applications/Xcode.app/Contents/Developer/Toolchains;sudo ln -s XcodeDefault.xctoolchain OSX10.8.xctoolchain
Jonathan Larson
Cela n'a pas fonctionné pour moi. Ce qui a fonctionné pour moi a été la mise à niveau de mes outils de ligne de commande (voir stackoverflow.com/a/19993810/130664 ).
Raam Dev
2
Même chose sur Mavericks: sudo ln -s XcodeDefault.xctoolchain OSX10.9.xctoolchain
izilotti
69

Lorsque vous voyez ce message d'erreur, vous n'avez peut-être pas encore accepté le contrat de licence Xcode après une mise à niveau.

Tout d'abord, assurez-vous d'avoir mis à niveau vos outils de ligne de commande:

$ xcode-select --install

Maintenant, Apple souhaite que vous acceptiez sa licence avant de pouvoir utiliser ces outils:

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

Une fois que vous l'avez accepté, les outils de ligne de commande fonctionneront comme prévu.

Konrad
la source
2
Cela a fonctionné pour moi; Xcode était installé (installation propre de Mavericks) mais les outils de ligne de commande n'étaient pas automatiquement installés.
JESii
Cela a très bien fonctionné pour moi. J'installais iperf3 et j'obtenais toujours l'erreur: "le compilateur c ne peut pas installer les exécutables". J'ai utilisé "xcode-select --install" et cela a parfaitement fonctionné.
Blairg23
Cela semble résoudre le problème sur Yosemite; même si XCode 6 est maintenant livré avec les outils de commande préinstallés et que je pourrais exécuter clang à partir de la ligne de commande, ./configure a échoué jusqu'à ce que j'exécute xcode-select
sapi
Certaines mises à jour système / sécurité semblent désactiver le contrat de licence et vous devez recommencer cette étape.
Matt Sanders
Cela s'est produit après une installation bêta d'El Capitan.
Joel Day
13

J'avais déjà installé les outils de ligne de commande dans xcode mais je me suis toujours trompé sur:

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

Quand je suis entré, which gccil est revenu

/usr/bin/gcc

Quand je suis entré, gcc -vj'ai eu un tas de trucs alors

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

J'ai donc créé un lien symbolique:

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

Et ça a marché!

(le fichier config.log se trouve dans le répertoire dans lequel make essaie de construire quelque chose)

Rimian
la source
Dans le config.log, j'ai vu que CC = '/ usr / bin / gcc-4.2' mais j'ai fait un ls du répertoire et il n'y avait rien. Le problème était donc assez clair de cette façon. J'ai créé le lien symbolique et BAM! Tout bon.
james2doyle
1
Après de longues recherches, c'est exactement l'astuce dont j'avais besoin! Thanks-
HSeldon
12

J'ai juste eu ce problème de construction d'Apache. La solution que j'ai utilisée était la même que Mostafa, j'ai dû exporter 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'

C'était un Mavericks Mac OSX

David Williams
la source
Merci, cela a fonctionné sur OS X pour avoir fonctionné ./configurepour Apache
Art
5

Obtenez d'abord le chemin gcc en utilisant

Commande: quel gcc

Sortie: / usr / bin / gcc

J'ai eu le même problème, veuillez définir le chemin gcc dans la commande ci-dessous et installer

CC = / usr / bin / gcc rvm install 1.9.3

Plus tard, si vous obtenez " Ruby a été construit sans documentation ", exécutez la commande ci-dessous

rvm docs generate-ri

Gurudath BN
la source
Fonctionne aussi sur High Sierra
Artur79
4

Pour moi, c'était un problème avec gcc, mis en évidence par gcc -v. Il était jusqu'à récemment la mise à niveau Xcode ce poste a dit de faire sudo xcode-select -switch /Applications/Xcode.appqui a fixé la question.

Homerjam
la source
4

La configuration de 'clang' comme la configuration du compilateur devrait utiliser a fonctionné pour moi:

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

Si quelqu'un vient ici parce que RVM / Ruby crée des problèmes (Middleman / Grunt), j'ai résolu mon problème.

PS. La réponse de Steroscott a résolu mon problème il y a quelque temps ... cette fois pas le cas.

Dans mon cas, rvm essaie d'utiliser un gcc téléchargé via homebrew. J'ai lancé une désinstallation de brew de gcc (gcc46 pour moi) et relancé le code pour l'installation de ruby ​​(ancien projet ancien ruby ​​v)

$ brew uninstall gcc46

$ rvm install 1.9.3

pendant ce processus de vérification des exigences, il a automatiquement récupéré un nouveau gcc pour moi et boom, tout fonctionne maintenant. Oh une grande note, l'installation de gcc à partir de la commande rvm peut prendre environ 10 à 15 minutes sans jeter aucun texte, ce n'est pas gelé :) Bonne chance

jasonsemko
la source
Le message important de rbenv était pour moi: pour la plupart des programmes, le llvm-gcccompilateur fonctionne bien. Cependant, les versions de Ruby antérieures à 1.9.3-p125 sont incompatibles avec llvm-gcc. Pour construire des versions plus anciennes de Ruby, vous devez avoir le compilateur officiel GCC installé sur votre système. POUR RÉSOUDRE LE PROBLÈME: Installez le paquetage apple-gcc42 de Homebrew avec cette commande: brew tap homebrew / dupes; brew install apple-gcc42
schmijos
2

J'ai lu furieusement toute cette page, espérant trouver une solution pour:

"configure: error: C compiler cannot create executables"

En fin de compte, rien n'a fonctionné, car mon problème était un problème de «frappe», et était lié à CFLAGS. Dans mon fichier .bash_profile j'avais:

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

Comme vous pouvez le constater --- export ARM_ARCH = "arm64" --- le dernier guillemet n'est pas le même que le premier guillemet. Le premier (") est légal tandis que le second (") ne l'est pas.
Cela s'est produit parce que j'ai commis l'erreur d'utiliser TextEdit (je travaille sous MacOS), et il s'agit apparemment d'une fonctionnalité appelée SmartQuotes: le signe de citation CHANGE PAR LUI-MÊME AU STYLE ILLÉGAL chaque fois que vous modifiez quelque chose juste à côté.
Leçon apprise: utilisez un éditeur de texte approprié ...

Florin Odagiu
la source
0

Dans mon cas, j'ai essayé xcode-select --installmais cela dit que ce n'est pas disponible dans le magasin. Puis, inspiré par Rimian, j'ai vérifié mon gcc: gcc -vet puis j'ai reçu un message disant que je n'avais pas accepté.

À partir de là, je viens de suivre le processus d'accord gcc -v, après avoir accepté que cela fonctionne bien pour moi.

Cruche
la source
0

Assurez-vous qu'il n'y a pas d'espaces dans le nom de votre application Xcode (cela peut arriver si vous gardez des versions plus anciennes - par exemple en le renommant «Xcode 4.app»); les outils de construction seront référencés dans les chemins du bundle Xcode, et de nombreux scripts ne peuvent pas gérer correctement les références avec des espaces.

coderSeb
la source
0

À propos du compilateur croisé iOS Clang

J'ai trouvé que le problème était à miphoneos-version-min=5.0. J'ai changé en miphoneos-version-min=8.0. Maintenant ça marche.

Je veux juste suggérer d'utiliser créer un simple fichier test.c et le compiler par la commande write dans le journal.

Vyacheslav
la source
0

Je viens d'avoir ce problème lors de la création d'une application native de réaction lorsque j'essaye d'installer Pod. J'ai dû exporter 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
la source
0

Garantit que le chemin d'accès au bundle Xcode.app est sans espace ni caractères étranges. J'ai installé Xcode dans le dossier ~ / Downloads / Last Dev Tools /, donc avec des espaces et renommer le dossier en LastDevTools corrige ce problème (après la réinitialisation de xcode-select -p cependant)

Altimac
la source