虽说捣鼓编译环境是个体力活,在 windows 下尤甚。但是这个能力是哪个平台都需要的。Unix/Linux 要更方便一些。如果遇到有些开源工程,系统里并没有自带其编译环境,那也得自己捣鼓了。尤其是做 C/C++ 开发的:>
还是很赞同大家的观点:做 Rails 开发最好不要在 windows 下。如果实在没得选择,那就硬着头皮上吧。祝福你千万别撞上那些无解的 gem。呵呵
写给@carl 在 windows xp 下成功编译 typhoeus 通过,并运行。步骤如下,希望对你有所帮助,今后遇到类似的 gem,也可做参考。
要编译 native gem,首先要有DevKit.这是必须的。
其实 curl 有 windows 预先编译好的 dev 包: http://www.gknw.net/mirror/curl/win32/curl-7.24.0-devel-mingw32.zip. 估计是被墙了,下载不了。那我们就自己编译 curl。
1.编译 curl 下载 curl 代码:http://curl.haxx.se/download/curl-7.24.0.zip. 把代码 解压缩至一个目录 (我的是 R 盘):R:\curl-7.24.0
在终端下,切换到你的 Devkit 的安装目录,运行 msys.bat,进入 Devkit 带的 mingw 环境。 在 mingw 环境下进入到 curl 的 lib 目录下,然后 make -f Makefile.m32 make 完成以后,lib 目录下会生成 libcurl.a,libcurldll.a,libcurl.dll 这三个
2.编译 typhoeus 在 windows 下,typhoeus 是动态链接到 curl 的。所以需要 libcurldll.a,libcurl.dll 这两个。 typhoeus 没有依赖系统特性,只用了 curl 了,还算比较好编译。
有一点要注意: 你可以建立一个目录 importlib,然后把libcurldll.a (30 几 k 的那个) 考到这个 importlib,然后改名:libcurldll.a ->libcurl.a 改名这一步很重要。
set CPATH=R:\curl-7.24.0\include
set LIBRARY_PATH=R:\curl-7.24.0\importlib
gem install typhoeus --platform=ruby
输出信息:
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
Successfully installed typhoeus-0.3.3
1 gem installed
Installing ri documentation for typhoeus-0.3.3...
Installing RDoc documentation for typhoeus-0.3.3...
编译完成之后,因为该 gem 在运行时依赖 libcurl.dll,所以需要把 libcurl.dll 的路径添加到环境变量 PATH 里。如果嫌麻烦,直接把 libcurl.dll 拷贝到 ruby 的 bin 目录里也行。比如:E:\Ruby192\bin.