Cmake pkg config使用了错误的前缀

Cmake pkg config使用了错误的前缀,cmake,pkg-config,aruco,Cmake,Pkg Config,Aruco,我正在使用从源代码安装Aruco 3.0.10 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 sud

我正在使用从源代码安装Aruco 3.0.10

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
这给了我
/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}
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}
但是,
pkg-config-aruco--libs打印

-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

因此,它似乎没有使用
前缀=/usr/local
,而是使用build目录。因为这是一个临时文件夹,所以它不会工作很长时间。如何修复此问题?

使用
pkg-config-aruco--debug
我发现pkg-config是

首选“aruco”软件包的卸载版本

它使用
/usr/local/lib/pkgconfig/aruco uninstalled.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}
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}
删除
/usr/local/lib/pkgconfig/aruco uninstalled.pc
就可以了。
现在,
pkg-config-aruco--libs

-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

似乎
pkg config
在您的系统中找到了其他
aruco.pc
文件。