在Mountain Lion上使用RVM安装ree-1.8.7

10

我在一台全新安装的Mountain Lion机器上安装了Xcode命令行工具,成功设置了Homebrew并安装了RVM。但不幸的是,我无法安装ree-1.8.7-head,编译过程失败。我认为问题可能与X11有关,因此安装了XQuartz,但仍然无法解决。随后,我从应用商店下载并安装了完整版的Xcode,但依旧无法解决。有人在全新安装的Mountain Lion上成功安装了吗?

以下是.rvm/log/ree-1.8.7-head/make.log文件的最后几行:

Find Tcl/Tk libraries. Make tcltklib.so which is required by Ruby/Tk.
gcc -I. -I../.. -I../../. -I../.././ext/tk -DHAVE_RB_SAFE_LEVEL -DHAVE_RB_HASH_LOOKUP -DHAVE_RB_PROC_NEW -DHAVE_RB_OBJ_TAINT -DHAVE_ST_PTR -DHAVE_ST_LEN -DRUBY_VERSION=\"1.8.7\" -DRUBY_RELEASE_DATE=\"2012-02-08\"  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -DWITH_TCL_ENABLE_THREAD=0 -fno-common -g -O2 -pipe -fno-common   -c stubs.c
In file included from stubs.c:10:
/usr/include/tk.h:78:23: error: X11/Xlib.h: No such file or directory
In file included from stubs.c:10:
/usr/include/tk.h:549: error: expected declaration specifiers or ‘...’ before ‘Window’
/usr/include/tk.h:549: error: ‘Window’ declared as function returning a function

.

/usr/include/tkDecls.h:1240: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute

__’ before ‘Tk_GetBitmapFromObj’
/usr/include/tkDecls.h:1245: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/include/tkDecls.h:1356: error: expected ‘)’ before ‘*’ token
/usr/include/tkDecls.h:1362: error: expected ‘)’ before ‘*’ token
/usr/include/tkDecls.h:1387: error: expected declaration specifiers or ‘...’ before ‘GC’
/usr/include/tkDecls.h:1399: error: expected declaration specifiers or ‘...’ before ‘GC’
/usr/include/tkDecls.h:1413: error: expected declaration specifiers or ‘...’ before ‘Pixmap’
/usr/include/tkDecls.h:1420: error: expected declaration specifiers or ‘...’ before ‘XColor’
/usr/include/tkDecls.h:1448: error: expected declaration specifiers or ‘...’ before ‘Pixmap’
/usr/include/tkDecls.h:1524: error: expected ‘)’ before ‘*’ token
/usr/include/tkDecls.h:1621: error: expected declaration specifiers or ‘...’ before ‘Drawable’
/usr/include/tkDecls.h:1656: error: expected ‘)’ before ‘*’ token
/usr/include/tkDecls.h:1661: error: expected ‘)’ before ‘*’ token
/usr/include/tkDecls.h:1692: error: expected specifier-qualifier-list before ‘XColor’
make[1]: *** [stubs.o] Error 1
make: *** [all] Error 1
2个回答

16

尝试

rvm reinstall 1.8.7 --without-tcl --without-tk

但是你的问题可能与gcc-4.2有关 -> 它是MRI Ruby所需的,有些人尝试使用llvm/clang成功了,但仍然无法在Fibers中运行。


有没有更好的方法来设置Mountain Lion?我明天想重新开始。 - Tom Rossi
禁用-tcl --禁用-tk选项仍然失败,但我从make日志中添加了更多内容,以查看是否有任何线索。 - Tom Rossi
谢谢!这对我在使用REE时也有帮助(我还有一个遗留项目在使用它)。 - Marnen Laibow-Koser
这解决了 /usr/include/tkDecls.h:1692 中的错误。我安装了 XCode 4.6。 - mmell

0
如果您不需要使用tcl或tk,并且正在使用rbenv,那么可以尝试以下方法:
brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb

CC=/usr/local/bin/gcc-4.2 CONFIGURE_OPTS="--without-tcl --without-tk" rbenv install 1.8.7-p358

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接