如何解决Windows 10下RMagick安装报错问题
我之前在Windows环境下部署Rails项目时也碰到过一模一样的问题,本质是RMagick依赖的ImageMagick版本不兼容或者编译环境配置不到位导致的编译失败。先把你遇到的报错信息贴出来方便对照:
collect2.exe: error: ld returned 1 exit status
make: *** [RMagick2.so] Error 1
make failed, exit code 2
Gem files will remain installed in C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/rmagick-2.16.0 for inspection.
Results logged to C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/rmagick-2.16.0/gem_make.out
安装rmagick (2.16.0)时发生错误,Bundler无法继续,请确认gem install rmagick -v '2.16...操作正常。
下面是亲测有效的解决步骤:
安装匹配版本的ImageMagick
RMagick 2.16.0只兼容ImageMagick 6.x系列(完全不支持7.x),而且因为你的Ruby是32位的(x86-mingw32),必须安装32位的ImageMagick。安装时一定要勾选这两个选项:Add application directory to your system pathInstall development headers and libraries for C and C++
推荐选ImageMagick 6.9.x版本,比如6.9.12-Q16,稳定性更好。
配置环境变量(如果安装时没自动配置)
手动设置两个环境变量:- 把ImageMagick的
bin目录添加到系统PATH里,比如C:\Program Files (x86)\ImageMagick-6.9.12-Q16\bin - 设置
MAGICK_HOME变量,值为ImageMagick的安装根目录,比如C:\Program Files (x86)\ImageMagick-6.9.12-Q16
设置完后要重启命令行窗口,确保环境变量生效。
- 把ImageMagick的
重新安装RMagick
先清理之前的残留安装文件:gem uninstall rmagick然后指定ImageMagick路径安装对应版本:
gem install rmagick -v '2.16.0' --platform=ruby -- --with-opt-dir="C:\Program Files (x86)\ImageMagick-6.9.12-Q16"这里的路径要和你实际安装的ImageMagick目录一致。
检查编译工具链
RailsInstaller自带的mingw编译工具应该是够用的,但如果还是报错,可以确认mingw的bin目录(比如C:\RailsInstaller\Ruby2.3.3\mingw32\bin)在系统PATH里,确保编译时能找到make、gcc这些工具。
完成这些步骤后,再运行bundle install应该就能顺利安装RMagick了。
内容的提问来源于stack exchange,提问作者keerthana devi

