Cmake pkg config使用了错误的前缀
我正在使用从源代码安装Aruco 3.0.10Cmake 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
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
文件。