9月29日14時
コピペやGUIに慣れると直ぐに嵌ります。Orz...
cdで目的のディレクトリーに行けない。思い込みと基本がなってない。覚えたつもりで入力しても間違えてるし。
cd ~/でどこにいくのかcdファイル名とコマンドの直後のスペースの意味。理解したつもりだとなにを間違ったのか分からない。
まずlsコマンドとls /でディレクトリーの確認をして思い込みを無くして。作業に慣れる。これコマンド操作の基本。
make fileの作業手順
①ターミナルの起動後コマンドでmkdir hello作業用ディレクトリーhelloを作る。(既にディレクトリーがある場合は②から)
②lsコマンドもしくはls /コマンドでディレクトリーの確認でhelloが表示されるか確認。
③cd helloで作業用ディレクトリーに移動
④pwdでどこに居るか念の為確認する。
⑤g++ -o aaa aaa.cpp `pkg-config --cflags opencv` `pkg-config --libs opencv`で実行ファイル生成
-o オプション+スペース+実行ファイル名 でa.out でなく自分の好きな実行ファイル名を付けられます。
例
若しくは一つの例./mainで実行
`pkg-config --cflags opencv` `pkg-config --libs opencv`の意味
コピペやGUIに慣れると直ぐに嵌ります。Orz...
cdで目的のディレクトリーに行けない。思い込みと基本がなってない。覚えたつもりで入力しても間違えてるし。
cd ~/でどこにいくのかcdファイル名とコマンドの直後のスペースの意味。理解したつもりだとなにを間違ったのか分からない。
まずlsコマンドとls /でディレクトリーの確認をして思い込みを無くして。作業に慣れる。これコマンド操作の基本。
make fileの作業手順
①ターミナルの起動後コマンドでmkdir hello作業用ディレクトリーhelloを作る。(既にディレクトリーがある場合は②から)
②lsコマンドもしくはls /コマンドでディレクトリーの確認でhelloが表示されるか確認。
③cd helloで作業用ディレクトリーに移動
④pwdでどこに居るか念の為確認する。
⑤g++ -o aaa aaa.cpp `pkg-config --cflags opencv` `pkg-config --libs opencv`で実行ファイル生成
-o オプション+スペース+実行ファイル名 でa.out でなく自分の好きな実行ファイル名を付けられます。
念の為もう一つ例:g++ -o main main.cpp `pkg-config --cflag opencv` `pkg-config --libs opencv`
⑥作業ディレクトリーで./aaaで実行例
若しくは一つの例./mainで実行
`pkg-config --cflags opencv` `pkg-config --libs opencv`の意味
これをコンパイルするときには,(1)cv.hなどのOpenCVのヘッダファイルが何処にあるのかの指定と,(2)libcvなどのOpenCVのライブラリが何処にあるのかの指定が必要です.これらを勝手にリストアップしてくれるのがpkg-configというコマンド.
まず,(1)のヘッダファイルについては
pkg-config --cflags opencv
を実行することでリストアップできます.僕の環境では
-I/opt/local/include/opencv
となりました.次に,(2)のライブラリについても同様に
pkg-config --libs opencv
を実行することでリストアップできます.僕の環境では
-L/opt/local/lib -lml -lcvaux -lhighgui -lcv -lcxcore
となりました.これをg++に引数としてソースコードと一緒に渡してやればコンパイル出来ますです.
g++ -o main main.cpp -I/usr/include/opencv -L/usr/lib/opencv -lcv -lhighgui
ここで,pkg-configの結果を直接g++に渡したいものです.そこで登場するのが`(バッククオート).コマンドを`で囲むと,その部分が,そのコマンドを実行した結果に置き換わります.つまり
g++ -o main main.cpp `pkg-config --cflag opencv` `pkg-config --libs opencv`
と書けばOK.
毎回こんな長いコマンドを打つのはやってられないので,Makefileに
main: main.cpp
g++ -o main main.cpp `pkg-config --cflag opencv` `pkg-config --libs opencv`
と書いてやれば,makeコマンド一発でコンパイル出来ます.
もうちょっと洗練して
main: main.o
g++ -o $@ $< `pkg-config --libs opencv`
.cpp.o:
g++ -o $@ -c $< `pkg-config --cflags opencv`
とかくとなおよし.
0 件のコメント:
コメントを投稿