Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux下的库链接_Linux_Opencv_Ld - Fatal编程技术网

Linux下的库链接

Linux下的库链接,linux,opencv,ld,Linux,Opencv,Ld,今天我(对我来说)经历了一个奇怪的行为:使用QMake和PkgConfig选项等。我能够链接opencv库,但后来我使用PkgConfig切换到CMake。当我尝试构建软件时,链接器抱怨说它无法找到库libcvaux,pkg config返回该库,请求为opencv(pkg config--libs opencv)交付库 在/usr/lib中,我找到了一个libcvaux.so.{version},但没有“普通”条目libcvaux.so。所以我做的是创建一个符号链接,现在它工作了 现在我想知道

今天我(对我来说)经历了一个奇怪的行为:使用QMake和PkgConfig选项等。我能够链接opencv库,但后来我使用PkgConfig切换到CMake。当我尝试构建软件时,链接器抱怨说它无法找到库
libcvaux
,pkg config返回该库,请求为
opencv
pkg config--libs opencv
)交付库

/usr/lib
中,我找到了一个
libcvaux.so.{version}
,但没有“普通”条目
libcvaux.so
。所以我做的是创建一个符号链接,现在它工作了

现在我想知道为什么它以前能起作用。有什么东西可以传递给
ld
一个选项,上面写着“使用最新版本,然后通过查看
so
后缀后面的数字来获得版本”吗?还是opencv包的维护人员忘记添加这个符号链接更像是某种错误?因为例如
libcv
libhighgui
有这样的符号链接


谢谢大家!

从ldconfig手册页:

ldconfig检查头文件和文件 它遇到的库的名称 在确定哪些版本应该 更新他们的链接


可能之前的ldconfig运行删除了该链接。

请转到serverfault或superuser。此问题中与c++无关。谢谢您的回答,我不知道
ldconfig
。不管怎样,我运行了它,它并没有解决我的问题。对于我提到的lib,它只创建一个符号链接
version.subversion->version.subversion.patchlevel
。这与处理
libcv
的方式不同,在这里我找到了
libcvaux
的符号链接。我采取务实的方式坚持使用符号链接,并尽量记住,
ldconfig
为所有其他库维护它们。