【问题标题】:Error when installing Gem phashion: ld: library not found for -ljpeg安装 Gem phashion 时出错:ld: library not found for -ljpeg
【发布时间】:2021-03-05 14:24:23
【问题描述】:

当我在我的 gemfile 中使用 Pashion 捆绑安装我的项目时。

我遇到了故障排除: ld: library not found for -ljpeg.

确认我已经通过以下命令安装了jpeg, libjpeg, libpng
brew install jpegbrew install libjpeg
brew install libpng

gem install phashion -v '1.2.0' 会得到同样的错误。

Machine: MacBook Air (M1, 2020)
Os: macOS BigSur 11.2 (20D64)

$ gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: arm64-apple-darwin20.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Related:
I use homebrew, which has full support on NEW Mac(M1), to install pacakges.
I use rvm(1.29.12) to manage ruby(2.6.3 as default).

最喜欢这里的问题https://github.com/westonplatter/phashion/issues/19

【问题讨论】:

    标签: ruby rubygems apple-m1


    【解决方案1】:

    经过大量搜索和尝试,解决方法如下:

    1. gem install phashion -v '1.2.0'
      您将得到故障排除:ld: library not found for -ljpeg

    2. 使用配置安装 phashion
      LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/opt/libjpeg/lib gem install phashion -v '1.2.0'
      然后你会得到故障排除:fatal error: 'jpeglib.h' file not found

    3. 最后一次故障排除是由于 clang 路径错误。所以
      export CPLUS_INCLUDE_PATH=/opt/homebrew/include 添加到~/.zshrc
      别忘了source ~/.zshrc

    4. 再次运行LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/opt/libjpeg/lib gem install phashion -v '1.2.0'
      然后你会得到故障排除:ld: library not found for -lpng

    5. 再次运行LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/opt/libjpeg/lib:/opt/homebrew/opt/libpng/lib gem install phashion -v '1.2.0'

    安装成功!

    【讨论】:

    • 谢谢。我刚刚切换到 M1 机器,在设置导轨时遇到了这个问题。我还必须解决这个问题:*.com/questions/67631572/…
    • M1 Pro 机器在这里。像魅力一样工作!