blog.monophile.net

コンピュータのこととかのメモ。

Takaaki Yamamoto

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

work

各種システム構築と管理を承ります。

Cloud PlatformOpenstack, GCP, AWS, Azure, ...
Openstackkeystone, glance, cinder, swift, neutron, nova, ...
VirtualizationQEMU+KVM, LXD/LXC, Docker, ...
OSDebian GNU/Linux, Ubuntu, CentOS, ...
NetworksIPSec, L2TP, VXLAN, WirelessAP, ...
WebAppsWordPress, GitLab, Redmine, ...
Configuration ManagementAnsible, Terraform, ...
MonitoringNagios, Munin, ...

posts

いきさつ

OpenCVをC++から使って見ることに。 というかもともとC++で使うのが基本っぽい。 そして、C++で使う時のコンパイルオプションって長くてめんどくさそうだな、って思って調べたら、 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}

参考