danpapa blog

趣味のプログラミング等について

Linux開発環境構築−3

OpenCVのビルド

OpenCVのビルドにはCmakeを使うようなので、インストールします。(普通にsudo apt installで行いました)
ビルドはWindowsでもやっていたので、同じようにstaticです。
・BUILD_SHARED_LIBSのチェックを外す
この辺は他のサイトで詳しく書かれているはずなので、省略します。

CodeBlocksの設定

またここでハマりました!Windowsと同じように設定してもエラー!・・・疲れてきました。

ネットを彷徨うこと数日。。。英語全く出来ないんですよねぇ。。。で、見つけた情報が「ライブラリの順番が大事だ」とのこと。でも順番の正解はどこにも書かれてない!おぃおぃ、エラー見ながら順番入れ替えて、ってやってられるか!(途中でやめました)

更に彷徨いながら見つけた情報は、下記

g++ sample.cpp `pkg-config --cflags --libs opencv4` -o sampleB

これでコンパイル出来るらしい・・・pkg-configって?いろいろ調べるとCmakeでの設定にも「OPENCV_GENERATE_PKGCONFIG」ってある。これをチェックし再度ビルドしてみた。

「lib/pkgconfig」の中に「opencv4.pc」ってファイルが出来てた。中身はこれ

# Package Information for pkg-config

prefix=/home/hry/library/opencv
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/opencv4

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.5.3
Libs: -L${exec_prefix}/lib -lopencv_gapi -lopencv_highgui -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_video -lopencv_calib3d -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc -lopencv_core
Libs.private: -L${exec_prefix}/lib/opencv4/3rdparty -llibprotobuf -lade -littnotify -llibjpeg-turbo -llibwebp -llibtiff -llibopenjp2 -lIlmImf -lquirc -lippiw -lippicv -L/usr/lib/x86_64-linux-gnu -lpng -lz -ldl -lm -lpthread -lrt
Cflags: -I${includedir}

ふむふむ、インクルードパス、ライブラリパス、ライブラリが書いてある。。。なぁんだ、結局同じじゃん!これもダメか。。。ん?ライブラリの順番が大事だったんだと思いだした。もしかして上記の順番でCodeBlocksに設定すればいけるのか?

とりあえず設定、(パスも)
f:id:danpapa_hry:20210906175203p:plain:w300

適当なサンプルを試すと動きました。とりあえずこれでおしまい。
何作ろうかな・・・