[英]linking libraries under Linux
我今天遇到了一个(对我来说)奇怪的行为:使用带有 PkgConfig 选项等的 QMake。我能够链接 opencv 库,但后来我使用 PkgConfig 切换到 CMake。 一旦我尝试构建我的软件,linker 抱怨它无法找到库libcvaux
,pkg-config 返回要求为opencv
( pkg-config --libs opencv
) 提供库。
在/usr/lib
我找到了一个libcvaux.so.{version}
,但没有“普通”条目libcvaux.so
。 所以我所做的是创建一个符号链接,现在它可以工作了。
现在我想知道为什么它以前有效。 有什么东西可以通过ld
一个选项说“使用最新版本,你可以通过查看so
后缀后面的数字来获得版本”? 还是 opencv package 的维护者忘记添加此符号链接的某种错误? 因为例如libcv
或libhighgui
有这样的符号链接。
谢谢!
从 ldconfig 手册页:
ldconfig 在确定哪些版本应该更新其链接时检查 header 和它遇到的库的文件名。
也许较早的 ldconfig 运行删除了该链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.