configure: error: компілятор C не може створити виконувані файли


141

Я перевірив ряд подібних питань щодо 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у налаштуваннях для запиту компілятора C. APXS вигадує це, але він має неправильний шлях, тому ви постійно отримуєте помилки.
Адріан Родрігес

1
Це допомогло, але остаточне виправлення надійшло звідси: glenscott.co.uk/blog/2011/08/29/…
Jazzy

1
Пакети інструментів командного рядка ars тепер доступні за адресою: developer.apple.com/downloads
Danny D'Amours

3
У Xcode 7 Інструменти командного рядка розташовані на вкладці "Місцеположення". У моєму випадку я вирішив проблему встановлення python, вибравши Xcode 7.3.1
Marco Pelegrini

Якщо хтось читає це в 2017 році або пізніше, вам слід встановити дату системи ще на пір 2013 року, або виникла помилка, яка стверджує, що Bluetooth кг не є довіреним. Проблема з сертифікатом минулого терміну дії.
Йоханнес Яндер

140

У мене встановлено 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, і це виправило. Тепер вилучений сценарій встановлення може знайти версію компілятора і продовжити свій шлях.

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

Як запропоновано в коментарях, якщо у вас виникають проблеми з Yosemite (10.10) або Mavericks (10.9), ви можете оновити команду symlink, вказану вище, щоб вказати на цю конкретну версію ( OSX10.9.xctoolchainабо OSX10.10.xctoolchain).


4
Це працювало для мене, дякую! У мене нова установка OSX 10.8 та найновіші інструменти командного рядка Xcode +, тому, схоже, це не було проблемою, пов’язаною з оновленням OSX.
Earldouglas

1
@James Чудова точка. У мене теж була свіжа установка OSX 10.8.
стереоскот

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

Це для мене не вийшло. Що для мене спрацювало - оновлення моїх інструментів командного рядка (див. Stackoverflow.com/a/19993810/130664 ).
Раам Дев

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

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

Це, здається, вирішило проблему на Yosemite; навіть якщо XCode-тепер поставляється з командними інструментами попередньо встановлено, і я міг би запустити брязкіт з командного рядка, ./configure не вдався , поки я не побіг Xcode-вибору
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 розташований у каталозі, який робить намагається щось вбудувати)


У config.log я побачив, що CC = '/ usr / bin / gcc-4.2', але я зробив ls каталогу і нічого не було. Таким чином, було досить зрозумілим таким чином питання. Я створив symlink та BAM! Все добре.
james2doyle

1
Після довгих пошуків це саме той трюк, який мені знадобився! Спасибі-
HSeldon

12

У мене просто було таке питання, як побудувати апаш. Я використовував рішення, таке ж, як і Mostafa, мені довелося експортувати 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 для запуску ./configureдля Apache
Art

5

Спочатку отримайте шлях до gcc

Команда: який gcc

Вихід: / usr / bin / gcc

У мене була така ж проблема. Будь ласка, встановіть gcc шлях у команді нижче та встановіть

CC = / usr / bin / gcc rvm встановити 1.9.3

Пізніше, якщо ви отримаєте " Ruby був побудований без документації ", запустіть нижче команди

rvm docs create-ri


Працює і на Високій Сьєррі
Artur79

4

Для мене це була проблема з gcc, підкреслена gcc -v. Нещодавно ця публікація говорила про оновлення Xcode , sudo xcode-select -switch /Applications/Xcode.appщо вирішило проблему.


3

Налаштування "clang" як конфігурації компілятора слід використовувати для мене:

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

2

Якщо хтось приходить сюди, тому що RVM / Ruby створює проблеми (Middleman / Grunt), я вирішив свою проблему.

PS. Відповідь steroscott виправила мою проблему ще раз ... цього разу не так.

У моєму випадку rvm намагається використовувати завантажений gcc через homebrew. Я запустив видалення файлу gcc (для мене gcc46) і перезапустив код для встановлення ruby ​​(старий проект old 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 у вашій системі. Щоб виправити проблему: Встановіть пакунок apple-gcc42 Homebrew за допомогою цієї команди: заваріть кран домашньої капусти / дупи; варити встановити 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 і скомпілювати його командою запису в журнал.


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 / folder, тому з пробілами та перейменуванням папки в LastDevTools це виправлено (після скидання xcode-select -p хоч)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.