環境
- MacOS X 10.8.4
- MacPorts 2.2.0
- OpenCV 2.4.6
- gcc 4.2.1 (Based on Apple Inc. build 5658)
OS X 10.9(Mavericks)のXcode5のgccでも動作しましたが、OS X 10.8.4からのアップデートした環境です。
やり方
まず、OpenCVをインストールする必要があります。今回はMacPortsを使ってインストールしました。MacPortsを使うにはgccが必要ですので、AppStoreからXcodeをインストールして、Command Line Toolsを入れます。ちなみにLionでgccを入れててMountain Lionにアップデートした場合も再度gccを入れる必要があります。MacPortsはいろいろググって入れます。んで
sudo port install opencv
を打って放っておくと完了すると思います(パスワード聞かれるので入力してから放置)。そして適当なディレクトリ作ってOpenCVを使ったコードを書きましょう。以下では前回紹介したtrans90.cを使ってやってみます。このままでは通らないのでちょっとソースコードを書き直します。具体的にはincludeの<>を""に書き直し、保存します。そして保存したディレクトリに移動して
gcc -I/opt/local/include -L/opt/local/lib trans90.c -lm -lopencv_core -lopencv_highgui -lopencv_imgproc -o trans90このように打てばコンパイルが通るとおもいます。 しかし、毎回コンパイルの度にこのように打っていては面倒なのでMakefileをつくってmakeを利用します。テキストエディタで
CC = gccこれを書いてMakefileという名前でソースコード(trans90.c)と同じディレクトリに保存します。そして
CFLAGS = -I/opt/local/include
LDFLAGS = -L/opt/local/lib
LDLIBS = -lm -lopencv_core -lopencv_highgui -lopencv_imgproc
make trans90と打てばコンパイルができると思います。Makefileは本来は分割ソースのコンパイルに力を発揮しますが、今回のような場合でも十分便利なので利用しました。
それでは今日はこのへんで。
[追記]
Homebrew 0.9.4の環境が入ったMacOS X 10.8.4でも動作の確認ができました。Homebrewの場合CC = gccのように赤字の部分のように書き換えることで、ソースコード(trans90.c)がコンパイル出来ました。ただしOpenCVのバージョンが2.4.5の場合です。指定するディレクトリに注意してください。
CFLAGS = -I/usr/local/Cellar/opencv/2.4.5/include
LDFLAGS = -L/usr/local/Cellar/opencv/2.4.5/lib
LDLIBS = -lm -lopencv_core -lopencv_highgui -lopencv_imgproc
0 件のコメント:
コメントを投稿