这是我第一次使用Ruby。我意识到不要使用sudo来安装Gems,所以我遵循这个tutotrial(http://pragmaticstudio.com/blog/2010/9/23/install-rails-ruby-mac)来安装RVM,以便我可以更新我的Ruby版本,然后安装Middleman(http://middlemanapp.com/)。在OS X上通过RVM安装Ruby时运行'make'时出错Mountain Lion
RVM安装工作,但在“#compiling”阶段,我得到以下错误安装Ruby 1.9.3时:
Error running 'make', please read /Users/Mark/.rvm/log/ruby-1.9.3-p385/make.log There has been an error while running make. Halting the installation.
我打开日志文件,不像很多的我已经等问题可以看到,该文件不包含对'readline'的引用,而是对'编译',我假定它涉及到Ruby安装的'#compiling'阶段。下面是输出到make.log里:
[2013-02-12 09:04:26] make
CC = clang
LD = ld
LDSHARED = clang -dynamic -bundle
CFLAGS = -O3 -ggdb -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=shorten-64-to-32 -Werror=implicit-function-declaration -pipe
XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT
CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/Users/Mark/.rvm/usr/include -I. -I.ext/include/x86_64-darwin12.2.0 -I./include -I.
DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace
SOLIBS =
compiling main.c
compiling dmydln.c
compiling dmyencoding.c
compiling version.c
compiling dmyversion.c
compiling miniprelude.c
compiling array.c
compiling bignum.c
bignum.c:2732:26: warning: while loop has empty body [-Wempty-body]
while (--ny && !zds[ny]); ++ny;
^
bignum.c:2732:26: note: put the semicolon on a separate line to silence this warning
1 warning generated.
compiling class.c
compiling compar.c
compiling complex.c
compiling dir.c
compiling dln_find.c
compiling enum.c
compiling enumerator.c
compiling error.c
compiling eval.c
compiling load.c
compiling proc.c
compiling file.c
compiling gc.c
gc.c:3060:1: warning: unused function 'chain_finalized_object' [-Wunused-function]
chain_finalized_object(st_data_t key, st_data_t val, st_data_t arg)
^
1 warning generated.
compiling hash.c
compiling inits.c
compiling io.c
compiling marshal.c
compiling math.c
compiling node.c
compiling numeric.c
compiling object.c
compiling pack.c
compiling parse.c
compiling process.c
compiling random.c
compiling range.c
compiling rational.c
compiling re.c
compiling regcomp.c
compiling regenc.c
compiling regerror.c
compiling regexec.c
compiling regparse.c
regparse.c:582:15: error: implicit conversion loses integer precision: 'st_index_t' (aka 'unsigned long') to 'int' [-Werror,-Wshorten-64-to-32]
return t->num_entries;
~~~~~~ ~~~^~~~~~~~~~~
1 error generated.
make: *** [regparse.o] Error 1
如果我执行“make --version”我得到以下输出:
GNU Make 3.81 Copyright (C) 2006 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.
This program built for i386-apple-darwin11.3.0
我在努力寻找精确匹配的问题,所以如果任何人都能帮上忙,那会很棒。
干杯,
马克。
你好马克,尝试一个干净的安装,看看是否重现错误。你可以使用[Rails Installer](http://railsinstaller.org/#osx)。它也基于RVM。的 – 2013-02-12 09:48:06
可能重复[无法编译红宝石1.9.3(http://stackoverflow.com/questions/14592945/cannot-compile-ruby-1-9-3) – mpapis 2013-02-12 14:57:30