configure: ошибка: компилятор C не может создавать исполняемые файлы


143

Я проверил несколько похожих вопросов по stackoverflow, но пока не нашел ответа.

Я пытаюсь установить memcached на Lion OSX, как показано здесь .

Вот что я получаю:

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.

Я переустановил Xcode, как рекомендовалось в паре мест, но без кости.

Вот мой 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
Чтобы спасти людей, ld: library not found for -lcrt1.10.5.o
ищущих

1
Вопрос в том, компилировали ли вы что-нибудь еще на этой машине раньше или это впервые?
Грег Хьюгилл,

1
Боюсь, что этот вопрос на самом деле не связан с программированием , а скорее об установке программного обеспечения . Если вы ничего не знаете о программировании, то есть лучшие места, где можно найти необходимую помощь.
Грег Хьюгилл,

2
Я не уверен, что согласен с оценкой "не связанных с программированием". Проблема, по-видимому, связана с установкой и настройкой инструментов разработчика (конечно, я думал, что они установлены по умолчанию на Lion). Если это так, то это будут «инструменты, уникальные для профессии программиста», или что-то еще, о чем говорится в FAQ.
dmckee --- котенок экс-модератора

4
Я нашел этот элемент, потому что испытываю очень похожую проблему при попытке собрать библиотеку iOS на машине, на которой я определенно занимался программированием в течение некоторого времени. Для меня это очень важно!
Энди Дент

Ответы:


117

У вас старый набор инструментов для разработчиков. gcc сообщает о своей версии как 4.0.1. Это может остаться от перехода со старой версии ОС. Если вы установили Xcode 4.3.x, вам необходимо запустить его, зайти в его настройки, выбрать вкладку «Загрузки» и нажать «Установить» рядом с пакетом инструментов командной строки.


4
Если вы читаете этот ответ, вам определенно следует это сделать, но имейте в виду, что это не решит вашу проблему с другими пакетами, которые вы пытаетесь создать. Итак, сначала установите инструменты командной строки, а затем посмотрите ответ @sterescott ниже, и это должно решить ваши проблемы. Некоторые пакеты, такие как mod_jk, используют /usr/sbin/apxs -q CCв configure, чтобы запросить компилятор C. APXS выплевывает его, но у него неправильный путь, поэтому вы продолжаете получать ошибки.
Адриан Родригес

1
Это помогло, но окончательное исправление пришло отсюда: glenscott.co.uk/blog/2011/08/29/…
Jazzy

1
Пакеты инструментов командной строки теперь доступны по адресу: developer.apple.com/downloads
Дэнни Д'Амор,

3
В Xcode 7 инструменты командной строки расположены на вкладке «Расположение». В моем случае я исправил проблему с установкой python, выбрав Xcode 7.3.1
Марко Пелегрини,

Если кто-то читает это в 2017 году или позже, вам следует установить системную дату на февраль 2013 года, иначе будет ошибка, утверждающая, что пакет Bluetooth не является доверенным. Некоторая проблема с просроченным сертификатом.
Йоханнес

141

У меня установлен 10.8 и Xcode 4.4 с инструментами командной строки, но я все еще получаю эту ошибку. Вместо того, чтобы переустанавливать Xcode, я заметил, что в моем 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

Для меня этого пути не существовало. Вместо этого у меня было:

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

Компилятор C («cc») находится внутри этого каталога xctoolchain. Я создал символическую ссылку для OSX10.8.xctoolchain, чтобы указать на XcodeDefault.xctoolchain, и это исправило. Теперь сценарий установки memcached может найти версию компилятора и продолжить свой путь.

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

Как предлагается в комментариях, если у вас возникла эта проблема в Yosemite (10.10) или Mavericks (10.9), вы можете обновить команду символической ссылки выше, чтобы указать на эту конкретную версию ( OSX10.9.xctoolchainили OSX10.10.xctoolchain).


4
У меня это сработало, спасибо! У меня свежая установка OSX 10.8 и новейшие инструменты командной строки Xcode +, так что, похоже, это не было проблемой, связанной с обновлением OSX.
Earldouglas

1
@ Джеймс Отличный момент. У меня тоже была свежая установка OSX 10.8.
Stereoscott

1
cd /Applications/Xcode.app/Contents/Developer/Toolchains;sudo ln -s XcodeDefault.xctoolchain OSX10.8.xctoolchain
Джонатан Ларсон

У меня это не сработало. Для меня сработало обновление моих инструментов командной строки (см. Stackoverflow.com/a/19993810/130664 ).
Raam Dev

2
То же самое на Mavericks: sudo ln -s XcodeDefault.xctoolchain OSX10.9.xctoolchain
izilotti 07

69

Когда вы видите это сообщение об ошибке, возможно, вы еще не приняли лицензионное соглашение Xcode после обновления.

Прежде всего, убедитесь, что вы обновили инструменты командной строки:

$ xcode-select --install

Теперь Apple хочет, чтобы вы согласились с их лицензией, прежде чем вы сможете использовать эти инструменты:

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

После того, как вы его примете, инструменты командной строки будут работать должным образом.


2
Это сработало для меня; Xcode был установлен (чистая установка Mavericks), но инструменты командной строки не были установлены автоматически.
JESii

У меня это прекрасно сработало. Я устанавливал iperf3 и все время получал ошибку: «компилятор c не может установить исполняемые файлы». Я использовал «xcode-select --install», и он отлично работал.
Blairg23 09

Кажется, это решает проблему с Йосемити; хотя XCode 6 теперь поставляется с предустановленными командными инструментами, и я мог запускать clang из командной строки, ./configure терпел неудачу, пока я не запустил xcode-select
sapi

Некоторые обновления системы / безопасности, похоже, отключают лицензионное соглашение, и вам придется повторить этот шаг снова.
Мэтт Сандерс,

Произошло после установки бета-версии El Capitan.
Joel Day

13

Я уже установил инструменты командной строки в xcode, но у меня все еще есть ошибки:

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

Когда я вошел, which gccон вернулся

/usr/bin/gcc

Когда я вошел, gcc -vу меня было много вещей.

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

Итак, я создал символическую ссылку:

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

И это сработало!

(файл config.log находится в каталоге, в котором make пытается что-то встроить)


В config.log я видел, что CC = '/ usr / bin / gcc-4.2', но я сделал ls каталога, и ничего не было. Таким образом, проблема была довольно ясной. Я создал символическую ссылку и БАМ! Все хорошо.
james2doyle

1
После долгих поисков это именно то, что мне было нужно! Спасибо
HSeldon

12

У меня только что возникла проблема с созданием apache. Я использовал то же решение, что и Мостафа, мне пришлось экспортировать 2 переменные:

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'

Это был один Mac OSX Mavericks


Спасибо, это сработало на OS X для запуска ./configureApache
Art

5

У меня сработала установка clang в качестве конфигурации компилятора:

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

5

Сначала получите путь gcc, используя

Команда: which gcc

Вывод: / usr / bin / gcc

У меня была такая же проблема, установите путь gcc в команде ниже и установите

CC = / usr / bin / gcc rvm install 1.9.3

Позже, если вы получите сообщение « Ruby был собран без документации », выполните команду ниже

rvm docs generate-ri


Работает и на High Sierra
Artur79

4

Для меня это была проблема с gcc, выделенная gcc -v. Недавно в этом посте говорилось, sudo xcode-select -switch /Applications/Xcode.appчто нужно было обновить Xcode , что устранило проблему.


2

Если кто-то приходит сюда, потому что RVM / Ruby создает проблемы (посредник / Grunt), я решил свою проблему.

PS. Ответ от steroscott решил мою проблему некоторое время назад ... на этот раз не так.

В моем случае rvm пытается использовать загруженный gcc через homebrew. Я запустил brew-деинсталляцию gcc (gcc46 для меня) и перезапустил код для установки ruby ​​(старый проект старый ruby ​​v)

$ brew uninstall gcc46

$ rvm install 1.9.3

во время этого процесса проверки требований он автоматически загрузил для меня новый gcc и бум, теперь все работает. О, большое примечание, установка gcc из команды rvm может занять около 10-15 минут без выброса текста, он не завис :) Удачи


Важное сообщение от rbenv было для меня: для большинства программ llvm-gccкомпилятор работает нормально. Однако версии Ruby старше 1.9.3-p125 несовместимы сllvm-gcc . Для сборки более старых версий Ruby в вашей системе должен быть установлен официальный компилятор GCC. ЧТОБЫ ИСПРАВИТЬ ПРОБЛЕМУ: Установите пакет Homebrew apple-gcc42 с помощью этой команды: brew tap homebrew / dupes; brew install apple-gcc42
schmijos

2

Я яростно прочитал всю эту страницу, надеясь найти решение для:

"configure: error: C compiler cannot create executables"

В конце концов, ничего не помогло, потому что моя проблема заключалась в "типировании" и была связана с CFLAGS. В моем файле .bash_profile у меня было:

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

Как видите --- экспорт ARM_ARCH = "arm64" --- последний знак кавычки не совпадает с первым знаком кавычки. Первый (") допустим, а второй (") - нет.
Это произошло из-за того, что я совершил ошибку, используя TextEdit (я работаю под MacOS), и, по-видимому, это функция под названием SmartQuotes: знак кавычки САМ ИЗМЕНЯЕТСЯ НА НЕЗАКОННЫЙ СТИЛЬ всякий раз, когда вы редактируете что-то рядом с ним.
Извлеченный урок: используйте подходящий текстовый редактор ...


0

В моем случае я попробовал xcode-select --install но там написано, что в магазине его нет. Затем, вдохновленный Римианом, я проверил свой gcc:gcc -v и получил сообщение о том, что я не согласен.

С этого момента я просто следил за процессом согласования gcc -v, после того как я согласился, он мне подходит.


0

Убедитесь, что в имени вашего приложения Xcode нет пробелов (может случиться, если вы сохраните старые версии - например, переименуйте его в «Xcode 4.app»); На инструменты сборки будут ссылаться пути к пакетам Xcode, и многие сценарии не могут правильно обрабатывать ссылки с пробелами.


0

О кросс-компиляторе clang iOS

Я обнаружил, что проблема была в miphoneos-version-min=5.0. Я переоделся в miphoneos-version-min=8.0. Теперь это работает.

Я просто хочу предложить создать простой файл test.c и скомпилировать его командой write в журнале.


0

У меня только что возникла проблема с созданием приложения, поддерживающего реакцию, когда я пытаюсь установить Pod. Мне пришлось экспортировать 2 переменные:

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

Гарантирует, что путь к пакету Xcode.app не содержит пробелов и странных символов. У меня Xcode установлен в папке ~ / Downloads / Last Dev Tools /, поэтому с пробелами и переименованием папки в LastDevTools это исправлено (хотя после сброса xcode-select -p)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.