在Mac OS 10.6上安装RMagick时出错

时间:2016-08-26 21:51:57

标签: ruby-on-rails ruby macos macports rmagick

我正在尝试安装 RMagick 以在Rails应用程序中使用它,但我遇到了一些问题。

我使用 Rails 5 并使用rvm安装 Ruby 2.3.1 。操作系统 OSX 10.6 ,我已经使用 macports 安装 ImageMagick

当Bundler尝试安装RMagick gem时,我可以看到安装失败并查看日志,我可以看到以下结果:

find_executable: checking for clang... -------------------- yes
find_executable: checking for Magick-config... -------------------- yes
configure_compile_options: checking for outdated ImageMagick version (<= 6.4.9)... no
Detected ImageMagick version: 6.9.5
configure_compile_options: checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
Detected 6.9+ version, using MagickWand API
assert_minimum_ruby_version!: checking for Ruby version >= 1.8.5...  yes
"clang -o conftest -I/Users/jonny/.rvm/rubies/ruby-2.3.1/include/ruby-2.3.0/x86_64-darwin10.0 
-I/Users/jonny/.rvm/rubies/ruby-2.3.1/include/ruby-2.3.0/ruby/backward 
-I/Users/jonny/.rvm/rubies/ruby-2.3.1/include/ruby-2.3.0 -I.  
-fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 
-fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 
-I/opt/local/include/ImageMagick-6  -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 
-DMAGICKCORE_QUANTUM_DEPTH=16 -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 
-DMAGICKCORE_QUANTUM_DEPTH=16 
-I/opt/local/include/ImageMagick-6 conftest.c  -L. 
-L/Users/jonny/.rvm/rubies/ruby-2.3.1/lib -L/opt/local/lib  
-L/opt/local/lib -lMagickWand-6.Q16 -lMagickCore-6.Q16    
-L/opt/local/lib -lMagickWand-6.Q16 -lMagickCore-6.Q16  
-lruby.2.3.0  -lpthread -lgmp -ldl -lobjc "
ld: library not found for -lgomp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

有人有解决问题的方法吗?

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。出现此问题的原因是 clang 的旧版本不支持 openmp ,因此我们必须安装较新的版本。

使用 macports 我安装了 clang 的另一个版本,启用 openmp 版本。

sudo port install clang-3.7 +openmp

安装完成后,我使用命令

检查了安装的clang的名称
sudo port select --list clang

新的clang安装名称为 mp-clang-3.7 ,因此在控制台中输入

sudo port select --set clang mp-clang-3.7

选择正确的版本。

完成后我可以使用bundle正确安装 RMagick