0

I'm installing Aruco 3.0.10 from source with

version="3.0.10"
pkg="aruco-${version}.zip"
url="https://netix.dl.sourceforge.net/project/aruco/3.0.0/${pkg}"
cd `mktemp -d`
wget -O $pkg $url
unzip $pkg
cd aruco-${version}
mkdir build && cd build
cmake ..
make -j
sudo make install

which gives me /usr/local/lib/pkgconfig/aruco.pc:

# pkg-config file for the library

prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: aruco
Description: ARUCO Library for marker detection
Version:  3.0.10
Requires: opencv >= 2.1.0
Conflicts:
Libs: -L${libdir} -laruco
Cflags: -I${includedir}/aruco -I${includedir}

However, pkg-config aruco --libs prints

-L/tmp/tmp.gNQGFAaTtz/aruco-3.0.10/build -laruco /usr/lib/x86_64-linux-gnu/libopencv_calib3d.so -lopencv_calib3d /usr/lib/x86_64-linux-gnu/libopencv_contrib.so -lopencv_contrib /usr/lib/x86_64-linux-gnu/libopencv_core.so -lopencv_core /usr/lib/x86_64-linux-gnu/libopencv_features2d.so -lopencv_features2d /usr/lib/x86_64-linux-gnu/libopencv_flann.so -lopencv_flann /usr/lib/x86_64-linux-gnu/libopencv_gpu.so -lopencv_gpu /usr/lib/x86_64-linux-gnu/libopencv_highgui.so -lopencv_highgui /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so -lopencv_imgproc /usr/lib/x86_64-linux-gnu/libopencv_legacy.so -lopencv_legacy /usr/lib/x86_64-linux-gnu/libopencv_ml.so -lopencv_ml /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so -lopencv_objdetect /usr/lib/x86_64-linux-gnu/libopencv_ocl.so -lopencv_ocl /usr/lib/x86_64-linux-gnu/libopencv_photo.so -lopencv_photo /usr/lib/x86_64-linux-gnu/libopencv_stitching.so -lopencv_stitching /usr/lib/x86_64-linux-gnu/libopencv_superres.so -lopencv_superres /usr/lib/x86_64-linux-gnu/libopencv_ts.so -lopencv_ts /usr/lib/x86_64-linux-gnu/libopencv_video.so -lopencv_video /usr/lib/x86_64-linux-gnu/libopencv_videostab.so -lopencv_videostab

So it doesn't seem to use the prefix=/usr/local, but rather the build directory. Since this is a temp folder, this is not going to work for long. How can I fix this?

Laurenz
  • 1,810
  • 12
  • 25

1 Answers1

0

With pkg-config aruco --debug I found out that pkg-config is

Preferring uninstalled version of package 'aruco'

which uses /usr/local/lib/pkgconfig/aruco-uninstalled.pc:

libdir=/tmp/tmp.37YkQGEdY8/aruco-3.0.10/build
includedir=/tmp/tmp.37YkQGEdY8/aruco-3.0.10/src

Name: aruco
Description: ArUco: a minimal library for Augmented Reality applications based on OpenCv, uninstalled Version.
Version: 3.0.10
Requires: opencv >= 2.1.0
Libs: -L${libdir} -laruco
Cflags: -I${includedir}

Removing /usr/local/lib/pkgconfig/aruco-uninstalled.pc does the trick.
Now, pkg-config aruco --libs gives

-L/usr/local/lib -laruco /usr/lib/x86_64-linux-gnu/libopencv_calib3d.so -lopencv_calib3d /usr/lib/x86_64-linux-gnu/libopencv_contrib.so -lopencv_contrib /usr/lib/x86_64-linux-gnu/libopencv_core.so -lopencv_core /usr/lib/x86_64-linux-gnu/libopencv_features2d.so -lopencv_features2d /usr/lib/x86_64-linux-gnu/libopencv_flann.so -lopencv_flann /usr/lib/x86_64-linux-gnu/libopencv_gpu.so -lopencv_gpu /usr/lib/x86_64-linux-gnu/libopencv_highgui.so -lopencv_highgui /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so -lopencv_imgproc /usr/lib/x86_64-linux-gnu/libopencv_legacy.so -lopencv_legacy /usr/lib/x86_64-linux-gnu/libopencv_ml.so -lopencv_ml /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so -lopencv_objdetect /usr/lib/x86_64-linux-gnu/libopencv_ocl.so -lopencv_ocl /usr/lib/x86_64-linux-gnu/libopencv_photo.so -lopencv_photo /usr/lib/x86_64-linux-gnu/libopencv_stitching.so -lopencv_stitching /usr/lib/x86_64-linux-gnu/libopencv_superres.so -lopencv_superres /usr/lib/x86_64-linux-gnu/libopencv_ts.so -lopencv_ts /usr/lib/x86_64-linux-gnu/libopencv_video.so -lopencv_video /usr/lib/x86_64-linux-gnu/libopencv_videostab.so -lopencv_videostab
Laurenz
  • 1,810
  • 12
  • 25