CMake找不到libteem.so

编程语言 2026-07-09

我在Ubuntu 26.04上,使用ccmake构建一个CMake包。

我用apt安装了 libteem-dev 包。

在配置构建时,CMake未能找到共享对象库 libteem.so*

/usr/lib/Teem-1.12.0 中有一些CMake文件。

CMake正在配置在 /usr/lib/Teem-1.12.0 查找这些库。

然而,libteem.so* 位于 /usr/lib

libteem.so* 复制到 /usr/lib/Teem-1.12.0 解决了问题。

如果我在ccmake中把配置变量改为指向 /usr/lib,在配置时它会被覆写回 /usr/lib/Teem-1.12.0

为什么CMake会在错误的位置查找?

有没有比简单把 .so 文件拷贝到预期位置更优雅的解决方案?凭直觉,我觉得创建符号链接可能更节省空间。

解决方案

为什么CMake会在错误的位置查找?

这似乎是libteem-dev软件包中的一个错误。你应该向Ubuntu(或Debian,因为在那里似乎也一样)提交bug报告。

有没有比简单把.so文件拷贝到预期位置更优雅的解决方案?凭直觉,我认为创建一个符号链接可能更节省空间。

那样做并不是一个好主意(至少在卸载该软件包时会留下文件)。你可以编辑 /usr/lib/Teem-1.12.0/TeemConfig.cmake,把 Teem_LIBRARY_DIRS 改成删除一个目录层级。

或者你可以在你的CMake中使用 link_directories(${Teem_LIBRARY_DIRS}/..),将正确的目录加入链接器路径。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章