LoginSignup
15

More than 3 years have passed since last update.

pkg-configを使ってg++でコンパイルできるようになるまで

Last updated at Posted at 2019-05-22

前回の続き

前回のページはこちら

こちらでは、opencv4.0をubuntu18.04(LTS)にインストールするまでをやりました

今回やること

pkg-configを使ってターミナル上で
g++ sample.cpp `pkg-config --cflags --libs opencv4` -o sampleB
でコンパイルできるようにする。

内容

前回の記事で、インストール終わりました。
一番のキーは /usr/local/lib/pkgconfig/opencv4.pc
ファイルで
内容は

opencv4.pc

Package Information for pkg-config

prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir_old=${prefix}/include/opencv4/opencv
includedir_new=${prefix}/include/opencv4

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.1.0
Libs: -L${exec_prefix}/lib -lopencv_dnn -lopencv_gapi -lopencv_highgui -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_video -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir_old} -I${includedir_new}

これでターミナルで
g++ sample.cpp `pkg-config --cflags --libs opencv4` -o sampleB
と叩いても、

Package opencv4 was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv4.pc'
to the PKG_CONFIG_PATH environment variable

と出てしまうので
.bashrcファイルへopecv4.pcファイルへのパスをPKG_CONFIG_PATHへ代入。(以下今回での追加分のみ記載)

.bashrc
export PKG_CONFIG_PATH==/usr/local/lib/pkgconfig

これで
g++ sample.cpp `pkg-config --cflags --libs opencv4` -o sampleB
でコンパイルできるようになる。

以下、ちょっと説明

pkg-configを使わずに直接コンパイルする場合、

g++ sample.cpp -I/usr/local/include/opencv4 -lopencv_core -lopencv_imgcodecs -lopencv_highgui -o sample

と叩いてもコンパイルはできる。
しかし、毎回インクルードするファイルをパスごと打つのはとても面倒なのでpkg-configを使った。
pkg-configの中身

Libs:~
の中身で
-lopencv_core -lopencv_imgcodecs -lopencv_highgui
を置き換え、
Cflags:~
の中身で
-I/usr/local/include/opencv4
を置き換えている。

参考URL

https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html
https://prateekvjoshi.com/2013/10/18/package-opencv-not-found-lets-find-it/
https://ja.stackoverflow.com/questions/53767/macos-c%E3%81%A7opencv%E3%81%8C%E5%AE%9F%E8%A1%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84
https://qiita.com/hsmtknj/items/0f56e3317cd0f2ae056a#%E5%82%99%E8%80%83

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15