为什么pkg-config——libs opencv返回库位置而不是库本身?

Why does pkg-config --libs opencv return library locations and not the libraries themselves?

本文关键字:位置 libs opencv 返回 为什么 pkg-config      更新时间:2023-10-16

我正在尝试编译一个包含OpenCV的c++程序。我想使用pkg-config使编译更容易。然而,这不起作用,因为pkg-config -libs opencv返回库位置而不是库本身。我:

/usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_contrib.so
/usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_features2d.so
/usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_gpu.so
...

当我期待类似

的东西时
-L/usr/local/include/ -lopencv_contrib -lopencv_features2d ...
我搞砸了什么吗?如果不是,为什么会发生这种情况?它能被修复吗?

pkg-config输出正确

GNU链接器(ld)(我不知道其他人是否也一样)允许您使用库的完整路径编写库,除了通常的-L和-L选项外,不需要任何-L或-L。