gcc не работает - Xcode 3.2.6 - снежный барс - PullRequest
6 голосов
/ 04 января 2012

Я немного новичок в том, чтобы возиться с окружающей средой, и, похоже, я ее сломал.Заранее большое спасибо за любую помощь, которую вы можете предложить.

Основным симптомом является то, что при попытке запустить rvm install 1.9.3 я получаю следующую трассировку:

Installing Ruby from source to: /Users/duncanstuart/.rvm/rubies/ruby-1.9.3-p0, this may take a while depending on your cpu(s)...

ruby-1.9.3-p0 - #fetching 
ruby-1.9.3-p0 - #extracted to /Users/duncanstuart/.rvm/src/ruby-1.9.3-p0 (already extracted)
Fetching yaml-0.1.4.tar.gz to /Users/duncanstuart/.rvm/archives
Extracting yaml-0.1.4.tar.gz to /Users/duncanstuart/.rvm/src
Configuring yaml in /Users/duncanstuart/.rvm/src/yaml-0.1.4.
ERROR: Error running ' ./configure --prefix="/Users/duncanstuart/.rvm/usr"  ', please read /Users/duncanstuart/.rvm/log/ruby-1.9.3-p0/yaml/configure.log
Compiling yaml in /Users/duncanstuart/.rvm/src/yaml-0.1.4.
ERROR: Error running 'make ', please read /Users/duncanstuart/.rvm/log/ruby-1.9.3-p0/yaml/make.log
Installing yaml to /Users/duncanstuart/.rvm/usr
ERROR: Error running 'make install', please read /Users/duncanstuart/.rvm/log/ruby-1.9.3-p0/yaml/make.install.log
ruby-1.9.3-p0 - #configuring 
ERROR: Error running ' ./configure --prefix=/Users/duncanstuart/.rvm/rubies/ruby-1.9.3-p0 --enable-shared --disable-install-doc --with-libyaml-dir=/Users/duncanstuart/.rvm/usr ', please read /Users/duncanstuart/.rvm/log/ruby-1.9.3-p0/configure.log
ERROR: There has been an error while running configure. Halting the installation.

Содержимое yaml/configure.logвыглядит следующим образом:

[2012-01-04 02:06:11]  ./configure --prefix="/Users/duncanstuart/.rvm/usr"  
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... config/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... /usr/bin/gcc-4.2
checking whether the C compiler works... no
configure: error: in `/Users/duncanstuart/.rvm/src/yaml-0.1.4':
configure: error: C compiler cannot create executables
See `config.log' for more details

Я подозреваю, что ключевые строки:

checking for gcc... /usr/bin/gcc-4.2
checking whether the C compiler works... no

Содержимое yaml/make.log и yaml/make.install.log одинаково (за исключением первой пары строкконечно)

Содержимое файла config.log включено в конец этого вопроса (потому что он очень длинный!).Важная строка выглядит так:

`ld: library not found for -lcrt1.10.6.o`

Я получаю те же ошибки при запуске rvm install ... с любой другой версией ruby ​​или при попытке установить что-либо с помощью Homebrew, например brew install wget

Моя теория

Я подозреваю, что это как-то связано с неправильным удалением и переустановкой Xcode 3.2.6 - подробности о том, что я сделал, см. В журнале ниже.

У меня быловзгляните на тонну сообщений stackoverflow, но, похоже, никто не отвечает на это:

My Setup

  • Я использую Snow Leopard 10.6.8
  • Я пытался установить Xcode 3.2.6 3 января и думаю, что это удалось
  • У меня есть rvm 1.10.0 (последняя версия на момент написания статьи)
  • Следующие строки в /usr/local/bin:

    lrwxr-xr-x   1 root       7  3 Jan 02:42 /usr/bin/gcc -> gcc-4.0
    -rwxr-xr-x   1 root   93072 23 Sep  2007 /usr/bin/gcc-4.0
    -rwxr-xr-x   1 root  166128 24 Oct  2010 /usr/bin/gcc-4.2
    

Если вы советуете «обновить до Lion и установить последнюю версию Xcode», пусть будет так.

History

Вот шаги, которые я выполнил: я не уверен, что важно, поэтому я перечислю все это.

  1. У меня был рабочий экземплярrvm , который смог успешно установить все до ruby ​​1.9.2.Я полагаю, что я использовал Xcode 3.2.6
  2. У меня было установлено macports - я не могу вспомнить почему.
  3. У меня было недавно установлено Homebrew по тем или иным причинам
  4. При попытке запустить rvm install 1.9.3 я получил ошибку, которая, по моему мнению, была похожа на эту:

    openssl_missing.h:173: error: conflicting types for ‘BN_rand_range’
    /usr/local/Cellar/openssl/0.9.8r/include/openssl/bn.h:411: error: previous declaration of ‘BN_rand_range’ was here
    openssl_missing.h:177: error: conflicting types for ‘BN_pseudo_rand_range’
    /usr/local/Cellar/openssl/0.9.8r/include/openssl/bn.h:412: error: previous declaration of ‘BN_pseudo_rand_range’ was here
    openssl_missing.c:270: error: conflicting types for ‘BN_rand_range’
    /usr/local/Cellar/openssl/0.9.8r/include/openssl/bn.h:411: error: previous declaration of ‘BN_rand_range’ was here
    openssl_missing.c:278: error: conflicting types for ‘BN_pseudo_rand_range’
    /usr/local/Cellar/openssl/0.9.8r/include/openssl/bn.h:412: error: previous declaration of ‘BN_pseudo_rand_range’ was here
    
  5. Поиск в GoogleВокруг предположили, что это был своего рода конфликт, из-за которого на машине было два определения openssl (насколько я понимаю).

  6. Помня, что было предупреждение от Homebrew о конфликтахв MacPorts я попытался удалить MacPorts , используя инструкции на Macports Wiki .Я также удалил загрузку строк, связанных с MacPorts, из моего .bash_profile

  7. Это не сработало, и поскольку я вообще не понимал, что я делаю, я удалилXcode с sudo <Xcode>/Library/uninstall-devtools --mode=all.

  8. Это, конечно, усугубило ситуацию и привело к ошибкам, показанным выше.Поэтому я переустановил Xcode с оригинального компакт-диска - это оказалось Xcode 3.0 .

  9. Это не устранило эти ошибки, поэтому япопытался удалить эту версию Xcode - к сожалению, для этого необходимо вручную изменить версии системы в сценариях удаления, как описано здесь

  10. Наконец я скачали установил Xcode 3.2.6 (самый последний Xcode, доступный для Snow Leopard?) и у него закончились идеи.

config.log

Это содержимое файла config.log - находится в /Users/duncanstuart/.rvm/src/yaml-0.1.4/

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by yaml configure 0.1.4, which was
generated by GNU Autoconf 2.67.  Invocation command line was

  $ ./configure --prefix=/Users/duncanstuart/.rvm/usr CC=/usr/bin/gcc-4.2 --no-create --no-recursion

## --------- ##
## Platform. ##
## --------- ##

hostname = duncan-stuarts-macbook.local
uname -m = i386
uname -r = 10.8.0
uname -s = Darwin
uname -v = Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386

/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 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386
Kernel configured for up to 2 processors.
2 processors are physically available.
2 processors are logically available.
Processor type: i486 (Intel 80486)
Processors active: 0 1
Primary memory available: 3.00 gigabytes
Default processor set: 95 tasks, 425 threads, 2 processors
Load average: 0.87, Mach factor: 1.12
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /Users/duncanstuart/.rvm/usr/bin
PATH: /usr/local/bin
PATH: /usr/local/sbin
PATH: /usr/local/mysql/bin
PATH: /bin
PATH: /usr/sbin
PATH: /sbin
PATH: /usr/local/git/bin
PATH: /usr/X11/bin
PATH: /Users/duncanstuart/.rvm/bin
PATH: /usr/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2409: checking for a BSD-compatible install
configure:2477: result: /usr/bin/install -c
configure:2488: checking whether build environment is sane
configure:2538: result: yes
configure:2679: checking for a thread-safe mkdir -p
configure:2718: result: config/install-sh -c -d
configure:2731: checking for gawk
configure:2761: result: no
configure:2731: checking for mawk
configure:2761: result: no
configure:2731: checking for nawk
configure:2761: result: no
configure:2731: checking for awk
configure:2747: found /usr/bin/awk
configure:2758: result: awk
configure:2769: checking whether make sets $(MAKE)
configure:2791: result: yes
configure:2947: checking for gcc
configure:2974: result: /usr/bin/gcc-4.2
configure:3203: checking for C compiler version
configure:3212: /usr/bin/gcc-4.2 --version >&5
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
Copyright (C) 2007 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:3223: $? = 0
configure:3212: /usr/bin/gcc-4.2 -v >&5
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5666.3~6/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5666) (dot 3)
configure:3223: $? = 0
configure:3212: /usr/bin/gcc-4.2 -V >&5
gcc-4.2: argument to `-V' is missing
configure:3223: $? = 1
configure:3212: /usr/bin/gcc-4.2 -qversion >&5
i686-apple-darwin10-gcc-4.2.1: no input files
configure:3223: $? = 1
configure:3243: checking whether the C compiler works
configure:3265: /usr/bin/gcc-4.2    conftest.c  >&5
ld: library not found for -lcrt1.10.6.o
collect2: ld returned 1 exit status
configure:3269: $? = 1
configure:3307: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "yaml"
| #define PACKAGE_TARNAME "yaml"
| #define PACKAGE_VERSION "0.1.4"
| #define PACKAGE_STRING "yaml 0.1.4"
| #define PACKAGE_BUGREPORT "http://pyyaml.org/newticket?component=libyaml"
| #define PACKAGE_URL ""
| #define PACKAGE "yaml"
| #define VERSION "0.1.4"
| #define YAML_VERSION_MAJOR 0
| #define YAML_VERSION_MINOR 1
| #define YAML_VERSION_PATCH 4
| #define YAML_VERSION_STRING "0.1.4"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:3312: error: in `/Users/duncanstuart/.rvm/src/yaml-0.1.4':
configure:3314: error: C compiler cannot create executables
See `config.log' for more details

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_env_CC_set=set
ac_cv_env_CC_value=/usr/bin/gcc-4.2
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_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=/usr/bin/gcc-4.2
ac_cv_prog_make_make_set=yes

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} /Users/duncanstuart/.rvm/src/yaml-0.1.4/config/missing --run aclocal-1.11'
AMDEPBACKSLASH=''
AMDEP_FALSE=''
AMDEP_TRUE=''
AMTAR='${SHELL} /Users/duncanstuart/.rvm/src/yaml-0.1.4/config/missing --run tar'
AR=''
AUTOCONF='${SHELL} /Users/duncanstuart/.rvm/src/yaml-0.1.4/config/missing --run autoconf'
AUTOHEADER='${SHELL} /Users/duncanstuart/.rvm/src/yaml-0.1.4/config/missing --run autoheader'
AUTOMAKE='${SHELL} /Users/duncanstuart/.rvm/src/yaml-0.1.4/config/missing --run automake-1.11'
AWK='awk'
CC='/usr/bin/gcc-4.2'
CCDEPMODE=''
CFLAGS=''
CPP=''
CPPFLAGS=''
CYGPATH_W='echo'
DEFS=''
DEPDIR=''
DOXYGEN=''
DOXYGEN_FALSE=''
DOXYGEN_TRUE=''
DSYMUTIL=''
DUMPBIN=''
ECHO_C='\c'
ECHO_N=''
ECHO_T=''
EGREP=''
EXEEXT=''
FGREP=''
GREP=''
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LD=''
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIBTOOL=''
LIPO=''
LN_S=''
LTLIBOBJS=''
MAKEINFO='${SHELL} /Users/duncanstuart/.rvm/src/yaml-0.1.4/config/missing --run makeinfo'
MKDIR_P='config/install-sh -c -d'
NM=''
NMEDIT=''
OBJDUMP=''
OBJEXT=''
OTOOL64=''
OTOOL=''
PACKAGE='yaml'
PACKAGE_BUGREPORT='http://pyyaml.org/newticket?component=libyaml'
PACKAGE_NAME='yaml'
PACKAGE_STRING='yaml 0.1.4'
PACKAGE_TARNAME='yaml'
PACKAGE_URL=''
PACKAGE_VERSION='0.1.4'
PATH_SEPARATOR=':'
RANLIB=''
SED=''
SET_MAKE=''
SHELL='/bin/sh'
STRIP=''
VERSION='0.1.4'
YAML_LT_AGE='0'
YAML_LT_CURRENT='2'
YAML_LT_RELEASE='0'
YAML_LT_REVISION='2'
ac_ct_CC='/usr/bin/gcc-4.2'
ac_ct_DUMPBIN=''
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE=''
am__fastdepCC_FALSE=''
am__fastdepCC_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_TARNAME}'
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} /Users/duncanstuart/.rvm/src/yaml-0.1.4/config/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
lt_ECHO='/bin/echo'
mandir='${datarootdir}/man'
mkdir_p='$(top_builddir)/config/install-sh -c -d'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/Users/duncanstuart/.rvm/usr'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "yaml"
#define PACKAGE_TARNAME "yaml"
#define PACKAGE_VERSION "0.1.4"
#define PACKAGE_STRING "yaml 0.1.4"
#define PACKAGE_BUGREPORT "http://pyyaml.org/newticket?component=libyaml"
#define PACKAGE_URL ""
#define PACKAGE "yaml"
#define VERSION "0.1.4"
#define YAML_VERSION_MAJOR 0
#define YAML_VERSION_MINOR 1
#define YAML_VERSION_PATCH 4
#define YAML_VERSION_STRING "0.1.4"

configure: exit 77

1 Ответ

6 голосов
/ 05 января 2012

В итоге все оказалось довольно просто - большое спасибо всем в комментариях, которые помогли разобраться.

Было две проблемы:

Проблема 1: компилятор gcc был

Симптомы:

Сбой функций, зависящих от gcc, в журнале конфигурации (например, /Users/<user>/.rvm/log/ruby-1.9.3-p0/yaml/configure.log):

checking for gcc... /usr/bin/gcc-4.2
checking whether the C compiler works... no

... иследующие в журнале конфигурации (например, /Users/<user>/.rvm/src/yaml-0.1.4/config.log):

ld: library not found for -lcrt1.10.6.o

Проблема с корнем:

Xcode не был установлен должным образом.В частности, файл /Developer/SDKs/MacOSX10.6.sdk/usr/lib/crt1.10.6.o не существует.

Решение:

http://trac.macports.org/ticket/21784: "Попробуйте переустановить Xcode, убедитесь, что вы выбрали опцию" поддержка разработки unix ".

Проблема 2: RVM не устанавливает ruby ​​1.9.3

Симптомы:

rvm install ruby 1.9.3 завершается ошибкой с ERROR: Error running 'make '

Соответствующим /Users/<user>/.rvm/log/ruby-1.9.3-p0/make.logсодержит следующий сегмент:

compiling openssl_missing.c
In file included from openssl_missing.c:22:
openssl_missing.h:173: error: conflicting types for ‘BN_rand_range’
/usr/include/openssl/bn.h:411: error: previous declaration of ‘BN_rand_range’ was here
openssl_missing.h:177: error: conflicting types for ‘BN_pseudo_rand_range’
/usr/include/openssl/bn.h:412: error: previous declaration of ‘BN_pseudo_rand_range’ was here
openssl_missing.c:270: error: conflicting types for ‘BN_rand_range’
/usr/include/openssl/bn.h:411: error: previous declaration of ‘BN_rand_range’ was here
openssl_missing.c:278: error: conflicting types for ‘BN_pseudo_rand_range’
/usr/include/openssl/bn.h:412: error: previous declaration of ‘BN_pseudo_rand_range’ was here

Проблема с корнем:

Конфликты с предыдущими запусками установки (не совсем уверен в этом) .

Решение

https://rvm.beginrescueend.com/packages/openssl/: очистите рубин, который вы пытаетесь установить, и переустановите:

rvm remove 1.9.3
rvm install 1.9.3

Я также удалил два других рубина - ruby-1.9.2-p290 и ruby-1.9.2-p136, которые могли иметь с этим какое-то отношение ...:

...