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

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

関連記事

Rails pluginを使ったgemの作り方[1](基本設定編)

概要 みなさんこんにちはcandleです。今回からできればシリーズ物として、railsのgemを作っていこうと考えています。なぜかgemの作り方の詳しい解説サイトが日本語で少ないので未だgemを満足に …

Rails pluginを使ったgemの作り方[3](vendor/assets 読み込み編)

概要 みなさんこんにちはcandleです。今回はgemでvendorを作成し、それをrailsアプリケーション側で読み込ませる為の方法を紹介します。 よく、gemをインストールすると「app/asse …

railsのform_forとstrong parametersを使用して画像をアップロードする

概要 みなさんこんにちはcandleです。今回はrailsのform_forを使って、railsプロジェクトのpublicディレクトリに画像をアップロードしてみましょう。 form_forは基本的にデ …

MAMPにCakePHPを導入して動かす

概要 みなさんこんにちはcandleです。今回はMAMPでCakePHPを動かす環境設定を行いましょう。 条件 MAMPがインストールされている CakePHPをダウンロードする 下のCakePHPの …

wysiwygエディタのSquire editorのサンプルを作成する

概要 みなさんこんにちはcandleです。 今回オープンソースのsquireエディタをhtmlに手動で導入したいと思います。 squireはオープンソースの便利なwysiwygエディタです。 カスタマ …

  • English
  • 日本語

プロフィール


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

スポンサードリンク

アーカイブ