我正在尝试为Windows 8安装Ruby。我成功安装了Ruby和Rails,并且正在为rails安装所有gem。我一路上遇到了这条错误信息。
Gem::InstallError: The 'json' native gem requires installed build tools.
Please update your PATH to include build tools or download the DevKit from
http://rubyinstaller.org/downloads and follow the instructions at
https://github.com/oneclick/rubyinstaller An error occured while installing
json (1.8.1), and Bundler cannot continue. Make sure that
'gem install json -v '1.8.1'' succeeds before bundling.
按照说明我尝试了
gem install json -v '1.8.1'
不幸的是我收到了同样的错误消息。
我决定去rubyinstaller.org网站下载开发套件。
我的Ruby版本是2.0.0,所以按照说明,我决定最好下载这个开发工具包。
DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
从网站上可以下载三个开发工具包,一个用于Ruby版本1.87和1.93。还有一个可用于Ruby 2.0的开发工具包,但它仅适用于32位版本。由于我的操作系统是64位操作系统,我下载了这个开发工具包。
For use with Ruby 2.0 (x64 – 64bits only)
我还注意到所有文件都是7 Zip Zipractable Archives。我决定最好提取到这个目录。
C:\Ruby200
当我进入该目录时,我注意到已添加以下内容。
etc (directory)
>fstab.sample
>inputrc.default
>profile
>termcap
mingw (directory)
>bin (directory)
>contrib (directory)
>include (directory)
>lib (directory)
>libexec (directory)
>licenses (directory)
>man (directory)
>manifest (directory)
>share (directory)
>x86_64_w64-mingw32 (directory)
>mingw64env.cmd
postinstall (directory)
>pi.bat
>pi.sh
sbin (directory)
>awk (directory)
devkitvars.bat
devkitvars.ps1
dk.rb
m.ico
msys.bat
msys.ico
我知道这些文件和目录是提取的,因为我仔细检查了这些文件和目录的创建日期是否与提取的确切时间相匹配。
提取了我的文件和目录后,我运行了以下命令
chdir C:\Ruby200
ruby dk.rb init
ruby dk.rb review
ruby dk.rb install
然后我再次运行bundle install和gem install json -v'1.8.1'并遇到了一些不寻常的输出。
nt-to-pointer-cast]
generator.c:130:38: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:130:38: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'convert_UTF8_to_JSON':
generator.c:227:23: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:227:23: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:227:23: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:228:25: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:228:25: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:228:25: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'mHash_to_json':
generator.c:330:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'mArray_to_json':
generator.c:342:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'mFixnum_to_json':
generator.c:352:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'mBignum_to_json':
generator.c:362:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'mFloat_to_json':
generator.c:372:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'mString_to_json':
generator.c:394:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'mTrueClass_to_json':
generator.c:449:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'mFalseClass_to_json':
generator.c:459:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'mNilClass_to_json':
generator.c:469:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'cState_configure':
generator.c:524:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c:532:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:532:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:532:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:533:34: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:533:34: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:533:34: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:540:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:540:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:540:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:541:33: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:541:33: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:541:33: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:548:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:548:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:548:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:549:40: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:549:40: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:549:40: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:556:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:556:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:556:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:557:36: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:557:36: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:557:36: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:564:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:564:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:564:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:565:37: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:565:37: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:565:37: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'set_state_ivars':
generator.c:613:21: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:613:21: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:613:21: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:615:24: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:615:24: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:615:24: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_to_h':
generator.c:630:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'generate_json_object':
generator.c:700:20: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:700:20: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:700:20: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'generate_json_array':
generator.c:746:20: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:746:20: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:746:20: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_prepare_buffer':
generator.c:860:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'cState_partial_generate':
generator.c:890:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'isArrayOrObject':
generator.c:902:23: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:902:23: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:902:23: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:903:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:903:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:903:15: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_generate':
generator.c:920:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'cState_initialize':
generator.c:950:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'cState_init_copy':
generator.c:968:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c:969:5: warning: cast to pointer from integer of different size [-Win
t-to-pointer-cast]
generator.c: In function 'cState_indent':
generator.c:1012:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_indent_set':
generator.c:1024:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:1026:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1026:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1026:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1035:32: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1035:32: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1035:32: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c: In function 'cState_space':
generator.c:1049:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_space_set':
generator.c:1062:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:1064:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1064:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1064:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1073:31: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1073:31: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1073:31: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c: In function 'cState_space_before':
generator.c:1086:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_space_before_set':
generator.c:1098:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:1100:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1100:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1100:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1109:38: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1109:38: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1109:38: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c: In function 'cState_object_nl':
generator.c:1123:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_object_nl_set':
generator.c:1136:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:1138:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1138:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1138:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1146:35: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1146:35: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1146:35: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c: In function 'cState_array_nl':
generator.c:1159:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_array_nl_set':
generator.c:1171:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c:1173:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1173:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1173:11: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1181:34: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1181:34: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c:1181:34: warning: cast to pointer from integer of different size [-W
int-to-pointer-cast]
generator.c: In function 'cState_check_circular_p':
generator.c:1196:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_max_nesting':
generator.c:1208:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_max_nesting_set':
generator.c:1220:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_allow_nan_p':
generator.c:1233:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_ascii_only_p':
generator.c:1245:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_quirks_mode_p':
generator.c:1256:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_quirks_mode_set':
generator.c:1267:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_depth':
generator.c:1279:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_depth_set':
generator.c:1291:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_buffer_initial_length':
generator.c:1304:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
generator.c: In function 'cState_buffer_initial_length_set':
generator.c:1317:5: warning: cast to pointer from integer of different size [-Wi
nt-to-pointer-cast]
make: *** [generator.o] Error 1
Gem files will remain installed in C:/Ruby200/lib/ruby/gems/2.0.0/gems/json-1.8.
1 for inspection.
Results logged to C:/Ruby200/lib/ruby/gems/2.0.0/gems/json-1.8.1/ext/json/ext/ge
nerator/gem_make.out
我不知道这有什么意思,但看起来我遇到了一些麻烦。我承认我迷路了,不得不在这里寻求帮助。任何建议将不胜感激。提前感谢您的时间。
答案 0 :(得分:0)
当我在Windows 2012服务器上安装Ruby时,我没有直接在Ruby200文件夹中提取devkit。在Ruby200文件夹中有一个标记为“devkit”的文件夹,并在其中提取devkit zip文件夹。
还要确保您的PATH包含:
C:\ Windows \ System32下; C:\ WINDOWS C:{你在哪里安装了Ruby} \ bin
如果你想使用turbolinks,你还需要有node.js。您还需要为此设置路径。