pkg-configは/usr/lib/pkgconfigに指定した該当の'xxx.pc'を参照して、--cflags或いは--libsを返ってきます。自己流でインストールしたライブラリの場合、.bash_profile等のファイルに環境変数PKG_CONFIG_PATHを設定する必要があります。例として
export PKG_CONFIG_PATH=$HOME/lib/pkgconfig
geanyに例contours.cをビルドすると、
cc `pkg-config --cflags opencv` `pkg-config --libs opencv` contours.c -o contours
を実行してくれて、不思議だと思っています。contours.cがopencv関連のファイルなのだと自動的に識別くれるのはなぜなのか、教えてください。結局、自分の勘違いで、元々Fedora上のopencvサンプルディレクトリにGNUmakefileが有って、makeを実行すると、GNUmakefileを探して、自動で実行してくれます。ちなみに、Mandrivaのopencvサンプルディレクトリにbuild_all.shを使って、コンパイルを行います。build_all.sh in Mandriva OpenCV C Sample Directory
#!/bin/sh
if [[ $# > 0 ]] ; then
base=`basename $1 .c`
echo "compiling $base"
gcc -ggdb `pkg-config opencv --cflags --libs` $base.c -o $base
else
for i in *.c; do
echo "compiling $i"
gcc -ggdb `pkg-config --cflags opencv` -o `basename $i .c` $i `pkg-config --libs opencv`;
done
for i in *.cpp; do
echo "compiling $i"
g++ -ggdb `pkg-config --cflags opencv` -o `basename $i .cpp` $i `pkg-config --libs opencv`;
done
fi
0 件のコメント:
コメントを投稿