joppot

コピペで絶対動く。説明を妥協しない

プログラミング

Mac OS 10.9 Marvericks のMacportsでインストールしたOpencv2.4.8はXcode5、ターミナルでは使えない

投稿日:2014年3月5日 更新日:

Pocket

1393862109

概要

みなさんこんにちはcandleです。今回はopencv2.4.8が使えないという事を記事にさせてもらいます。

とは言うものの、2014年2月16日の話であって、今後修正されていくと思うので、その時はこの記事を削除したいと思います。

macに一度はmacportsでopencvを入れて、息高々してたのですが、 どうもMacports経由でOpencv2.4.8を入れると使えない模様です。

その時のそれぞれのバージョンは

mac os 10.9.1
xcode5.0.2
macports2.2.1
opencv2.4.8

になります。


インストールはできます

macportsでopencvは問題なくインストールできます。

sudo port install opencv

local_—_bash

問題はインストールしたパッケージを使用して、Mac OSのコンパイラーを使用するとエラーが生じます。

故に、opencvのパッケージを使用しない最低限の機能は利用できますが、意味ないでしょう。


なぜ、使えないのか

一番のエラーは

Undefined symbols for architecture x86_64:

ですね。これは様はリンカーエラーに準ずるものらしく、main.cppに組み込んでいるパッケージやライブラリになんらかのエラーが生じてこうなるのです。

もしかしたら設定がx86_64アーキテクチャーじゃないのかと思って、それらを確認しました。xcodeの「Build Setting」を見てみました。が、設定はちゃんと86になっています。

ver2_xcodeproj-2

Xcodeもopencvで使うライブラリもx86_64にしているのですが、コンパイルのところでエラーが続出します。

firstclt_xcodeproj

http://lnen.blogspot.jp/2013/11/xcodeopencvcundefined-symbols-for.html

のサイトを参考に、試行錯誤したのですが、断念しました。


考えられる理由

まず1つに使えない理由はmacportsの場合、opencv関連が/opt/local/の中に置かれることでしょう。

unixからmakeとかcmakeとかしてインストールすると/usr/local/の中に置かれます。

この時点でファイル構成が違うのが1つの問題かもしれません。

opencv2.4.8に問題があるのかもしれない。実はhomebrewでインストールする場合は2.4.7です。ということは2.4.8に問題があるのかもしれない。


結論

Macportsでopencv2.4.8を入れて、opencvを使うのはやめましょう。私は3日かけてもできませんでした。コンパイルとかファイル構成のバグはがんばっても徒労に終わる事がおおいですし、リスクも高いです。

Mavericksにしてもopencv2.4.8にしても最新版ですので、まだ不具合があるのでしょう。


対策

最終的に私がどうしたのか詳しい事は次回書きます。簡単にまとめると、homebrewを使用しました。こちらでopencv2.4.7をインストールしたところ一発で動きました。

ここで記事をまとめるのもなんなのですが、おわります。
それでは次回。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-プログラミング
-, , ,

執筆者:


  1. 初心者 より:

    Mac OS 10.9 Marvericks
    Xcode5
    openCV2.4.8の環境でもうまくいきませんでした。
    opencv2.4.7にダウングレードしたいのですが、初心者の為わからず、困っています。教えていただけないでしょうか。

    • joppot より:

      どうも、初心者さんcandleです。この記事にある様に、Macportsで入れたoencv2.4.8は私がやっても動きませんでした。
      そこで、私もopencv2.4.7をMacportsでインストールすれば動くのではないかと思っていたのですが、
      Macportsで過去のバージョン(opencv2.4.7)をインストールする方法をいくら調べても見つからなくて、時間の無駄と思いやめました。

      私のブログのもう1つの記事でmacportsではなく、homebrewでopencv2.4.7を入れる方法があるので、そちらを試してもらうとうまくいくと思います。簡単にできます。

      http://joppot.info/2014/03/06/913

      brewでインストールされるopencvのバージョンがもしも、2.4.8に上がっていたら下のサイトのやり方と同じ要領でやれば、
      opencv2.4.7でインストールできると思います。
      http://qiita.com/semind/items/f8f647e757842f08b9ec

      どうしても、macportsでやりたい場合はちょっとわかりません。

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

processingで重複しないランダムな数を配列で取得する

概要 みなさんこんにちはcandleです。今回はprocessingで重複しないランダムな数を配列で取得する関数を作成したいとおもいます。 前提 なし

Rails pluginを使ったgemの作り方[4](controller helper編)

概要 みなさんこんにちはcandleです。今回はgemの中枢とも言えるhelperの作り方です。 helperというのは様はgemにすることで便利になる関数を作るとというイメージです。 例えば、con …

railsのgonで別ページでリロード後turbolinksで移動したら変数がundefindする場合の対処

概要 (追記 2016/05/18 この方法を行うと、turbolinksで問題が起きました。 turbolinksで移動した回数だけ、javascriptが実行されてしまいました。 例えば、 < % ...

Mac OS 10.9 MarvericksにHomebrewでOpencv2.4.7をインストールする

概要 みなさんこんにちはcandleです。今回はhomebrewを使用してopencvをインストールします。 前回macports経由でインストールする方法がうまくいかない事を記事にしましたが今回の方 …

Railsの正規表現を使用して文字列から任意の文字を取得する

概要 みなさんこんにちはcandleです。今回はrailsの正規表現を使って任意の文字を文字列から取得する方法を紹介します。 rails4になってからなのか、railsはrubyであるにもかかわらず、 …

  • English
  • 日本語

プロフィール


ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー

スポンサードリンク

アーカイブ