使用Brew安装OpenCV永远不会完成

时间:2015-06-23 09:25:12

标签: opencv installation package formula homebrew

所以我正在尝试使用Homebrew安装opencv,但它无法正常工作。我使用brew tap homebrew/science然后brew install opencv 会发生什么:

==> Installing opencv from homebrew/homebrew-science
==> Installing dependencies for homebrew/science/opencv: gcc, eigen, jpeg, libpng, libtiff, ilmbase, openexr, homebrew/python/numpy
==> Installing homebrew/science/opencv dependency: gcc
==> Downloading http://ftpmirror.gnu.org/gcc/gcc-5.1.0/gcc-5.1.0.tar.bz2
Already downloaded: /Library/Caches/Homebrew/gcc-5.1.0.tar.bz2
==> Patching
patching file gcc/jit/Make-lang.in
==> ../configure --build=x86_64-apple-darwin13.4.0 --prefix=/usr/local/Cellar/gcc/5.1.0 --libdir=/usr/local/Cellar/gcc/5.1.0/lib/gcc/5 --enable-langua
==> make bootstrap

然后它不会停止,我已经运行了将近一个小时。终端窗口顶部的任务(你知道,它通常称为bash)一直在快速变化,通常是“红宝石”之类的东西,但是在此之后没有任何东西输出。

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:10)

请注意,它实际上是在那时编译GCC,预计需要很长时间。 Homebrew默认提供预制的二元瓶,所以很奇怪那些没有被使用。您的环境是否设置为从源代码构建所有内容?您可以尝试brew install gcc --force-bottle

答案 1 :(得分:7)

我遇到了同样问题的问题 -

brew tap homebrew/science
brew install opencv

开始安装一堆依赖项,这些依赖项在gcc开始之前很有效,我得到了:

==> Installing homebrew/science/opencv dependency: gcc
==> Downloading http://ftpmirror.gnu.org/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2
==> Downloading from http://gnu.mirror.iweb.com/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2
######################################################################## 100.0%
==> Patching
patching file gcc/jit/Make-lang.in
patching file gcc/jit/jit-playback.c
Hunk #1 succeeded at 2459 with fuzz 2 (offset 43 lines).
==> ../configure --build=x86_64-apple-darwin15.0.0 --prefix=/usr/local/Cellar/gcc/5.2.0 --libdir=/usr/loc
==> make bootstrap

这个过程持续了3个小时才让我生气并将其杀死。

<强>解决方案: 使用冲泡瓶:     brew install gcc --force-bottle。 它有效,但确实给出了以下警告:

GCC has been built with multilib support. Notably, OpenMP may not work:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60670
If you need OpenMP support you may want to
  brew reinstall gcc --without-multilib

我还没有遇到任何OpenMP问题。希望这有助于其他人。 使用OSX El Capitain运行MBP 13“(2011年末)。(它很老,这可能解释了冗长的make)。感谢@IanLancaster首先获得解决方案,但我想我会详细说明这些警告。