CMake 找不到明显存在的包

CMake not finding package that is clearly there

我正在尝试在 qtcreator 中通过 cmake 构建一个项目,但我遇到了外部包依赖项的问题。 有几个它找不到的包,但我将符号链接添加到实际文件位置到 cmake 正在查找的目录中,afetr 它们工作正常。 但是,这个库 libopencv_viz.so.3.2.0 并不与我合作。我添加了符号链接并直观地验证了 file/link 位于正确的位置,但 cmake 仍然告诉我它找不到该文件,我不知道如何解决这个问题。正如我在之前 post 中所述,我现在仍在学习 cmake,所以我完全不知道为什么它无法找到可验证地位于正确位置的包。

CMake Error at /usr/share/OpenCV/OpenCVModules.cmake:192 (message): The imported target "opencv_viz" references the file

 "/usr/lib/x86_64-linux-gnu/libopencv_viz.so.3.2.0"

但是这个文件不存在。可能的原因包括:

但不是它引用的所有文件。

手动创建 symlinks 表明您的安装不完整。清理您的手动 symlinks,并找出您的安装有什么问题。

在Linux上是正常的,.so.x.y.z全数字版的是运行时间库。即申请运行所需的文件。版本号确保应用程序加载与构建时相同的库。

.so symlink 到 .so.x.y.z 用于构建链。当编译器(linker,真的)针对 libopencv_viz 转到 link 时,它将搜索 libopencv_viz.so,将 symlink 解析为版本文件,并且link那个。

许多发行版(包括 Ubuntu)将 运行time 库与开发组件分开。我的猜测是您安装了名为 libopencv-viz3.2 的软件包,但没有安装名为 libopencv-viz-dev.

的软件包