我今天经历了一个(对我来说(奇怪的行为:将QMake与PkgConfig选项等一起使用。我能够链接opencv库,但后来我使用PkgConfig切换到了CMake。一旦我尝试构建我的软件,链接器就抱怨它找不到库libcvaux
,pkg config返回要求它提供opencv
(pkg-config --libs opencv
(的库。
在/usr/lib
中,我找到了一个libcvaux.so.{version}
,但没有"普通"条目libcvaux.so
。所以我所做的是创建一个符号链接,现在它可以工作了。
现在我想知道为什么它以前有效。有没有什么东西可以给ld
一个选项,说"使用最新版本,通过查看so
后缀后面的数字来获得版本"?还是opencv包的维护人员忘记添加这个符号链接是某种错误?因为例如CCD_ 9或CCD_。
谢谢!
来自ldconfig手册页:
ldconfig检查头和文件遇到的库的名称在确定应该使用哪些版本时更新他们的链接。
也许早期的ldconfig运行删除了链接。