目前googlesketchup for Mac有Ruby版本
1.8.5
我觉得有点过时了。我可以通过以下命令将Ruby更新到1.8.7(OSX的版本)
$ cd /Applications/Google\ SketchUp\ 7/SketchUp.app/Contents/Frameworks/Ruby.framework/Versions/Current
$ ls
Headers/ Resources/ Ruby
$ ls Headers/
config.h defines.h intern.h missing.h ruby.h
$ rm -r Headers
$ ln -s /System/Library/Frameworks/Ruby.framework/Headers
$ ln -fs /System/Library/Frameworks/Ruby.framework/Ruby
SketchUp启动时没有问题,Ruby控制台显示版本1.8.7。
1.9.2
现在我试着更进一步,更新到
1.9.2-rc2
. Google SketchUp需要
i386
二进制,可以通过以下命令生成
$ cd ~/ruby-1.9.2-rc2/
$ ARCHFLAGS="-arch i386" CFLAGS="-arch i386" LDFLAGS="-arch i386" ./configure --with-arch=i386
$ make && sudo make install
然后我将必要的文件复制到SketchUp:
$ cd /Applications/Google\ SketchUp\ 7/SketchUp.app/Contents/Frameworks/Ruby.framework/
$ rm Headers Ruby
$ cp /usr/local/bin/ruby Ruby
$ mkdir Headers
$ cp /usr/local/include/ruby-1.9.1/i386-darwin10.4.0/ruby/config.h Headers/
$ cp /usr/local/include/ruby-1.9.1/ruby.h Headers/
$ cp -r /usr/local/include/ruby-1.9.1/ruby/* Headers/
$ ls Headers
backward/ defines.h dl.h intern.h missing.h re.h ruby.h util.h vm.h
config.h digest.h encoding.h io.h oniguruma.h regex.h st.h version.h
当我尝试启动SketchUp时,我得到以下错误报告
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Dyld Error Message:
Library not loaded: @executable_path/../Frameworks/Ruby.framework/Versions/A/Ruby
Referenced from: /Applications/Google SketchUp 7/SketchUp.app/Contents/MacOS/SketchUp
Reason: no suitable image found. Did find:
/Applications/Google SketchUp 7/SketchUp.app/Contents/MacOS/../Frameworks/Ruby.framework/Versions/A/Ruby: can't map
/Applications/Google SketchUp 7/SketchUp.app/Contents/MacOS/../Frameworks/Ruby.framework/Versions/A/Ruby: can't map
/usr/local/lib/Ruby: not a file
/usr/lib/Ruby: not a file
Model: MacBookPro7,1, BootROM MBP71.0039.B05, 2 processors, Intel Core 2 Duo, 2.4 GHz, 4 GB, SMC 1.62f5
你能告诉我为什么吗?
更新1
Dan Rathbun
做了一些测试发现
在Win32上,当我试图
要加载任何1.9.x,我有一个“条目
ruby C的“未找到点”
函数“rb\u set\u kcode”,它不是
在1.9.x中更长(它被重命名,并且
红宝石人没有把旧的化名
新名称的名称。)
基本上Sketchup调用rb\u set\u kcode
将字符编码设置为UTF8
刚装完红宝石
翻译。对任何人都很好
Ruby在1.8.x分支中,但在1.9.x中
Ruby项目完全重新设计
字符编码,并给出了所有
C函数使用新的标识符,并且
增加了更多的功能。
1.9.x和Sketchup的解决方案
看来Sketchup需要
“Ruby版本敏捷”,意思是
谷歌人在
巨石。