我正在开发一个使用 libdc1394 与 Point-Grey Firewire 相机交互的项目。我们主要在 Ubuntu 8、Timesys 和 Ubuntu 9 上构建代码。我们通常使用包管理器来处理 Ubuntu 上的大多数依赖项,而 Timesys 安装似乎是从源代码编译的。
现在,让我感到困惑的部分是:我搞不清楚 Timesys 安装中的 libdc1394 是什么版本。查看库文件,我可以找到一个名为 libdc1394.so.20.0.0 的文件。但这些是我拥有的头文件:
dc1394_control.h dc1394_register.h dc1394_vendor_avt.h
dc1394_conversions.h dc1394_utils.h
它们位于名为 dc1394 的文件夹中。从我在 Ubuntu 8 软件包(即 libdc1394 版本 1)上看到的内容来看,我只看到 dc1394_control.h。它位于 libdc1394 文件夹中。
从我在使用 libdc1394 版本 2.2(这是存储库中的版本)的 Ubuntu 9 计算机上看到的情况来看,我有一个 dc1394 文件夹,然后是一个包含目录,看起来像我在此处找到的副本:https://libdc1394.svn.sourceforge.net/svnroot/libdc1394/trunk/libdc1394
我找不到任何关于 2.0 版和 2.2 版之间重大变化的信息。从 sourceforge 页面来看,2.0 版似乎与 Ubuntu 9 版类似。
知道为什么我似乎有 3 个不同版本的库吗?我理解为什么是 Ubuntu 8 和 Ubuntu 9,但不知道为什么我们在 Timesys 上安装的副本不同。
再次重申,我相当确定 Timesys 上的那个是从源代码编译的。不过他们这样做的时候我不在场,所以我不能确定。
答案1
用于ldd
查看 Timesys 可执行文件的依赖项。它将告诉您它正在加载哪一个。