blog.monophile.net

Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS]においてメディア表現を専攻し修了。 digitiminimi Inc. において、インフラエンジニアとして生計をたててている。

各種環境の構築と管理を承ります。

  • 仮想環境: Openstack, GCP, AWS, Azure, ...
  • アプリケーション: WordPress, GitLab, Redmine, ...

List

pkg-configを使ってみる

いきさつ

OpenCVをC++から使って見ることに。 というかもともとC++で使うのが基本っぽいです。 そして、C++で使う時のコンパイルオプションって長くてめんどくさそうだな、って思って調べたら、 pkg-configなんていう便利なコマンドがあるんだね。 使ってみます。;

pkg-config

pkg-configについての詳しい説明は末尾のwikipediaでどうぞ。 #### includeパスを表示する

例えばopencvのインクルードパスを表示するときは以下のコマンドを打ちます。

$ pkg-config --cflags opencv

すると、以下の様に出力されます。

-I/usr/include/opencv

つまり、コンパイルするときは以下の様にすればOKです。

$ INCLUDE=$(pkg-config --cflags opencv)
$ g++ -c -o cvtest.o cvtest.cpp ${INCLUDE}

libを表示する

opencvのライブラリのオプションを表示するのには以下のように打ちます。

$ pkg-config --libs opencv

すると、以下の様に出力されます。

-lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann

つまり、opencvのライブラリを用いたプログラムのリンクをするときは以下の様にすればOKです。

$ LIBS=$(pkg-config --libs opencv)
$ g++ -c -o cvtest cvtest.o ${LIBS}

参考URL