ubuntu16.04安装opencv3.4.1时出现: libgtk2.0-dev : 依赖: libgtk2.0-0 (= 2.24.23-0ubuntu1) ...

我在Ubuntu16.04下安装编译opencv3.4.1时,安装初始得一些库时使用“sudo apt-get install libgtk2.0-dev”的时候,提示:

 libgtk2.0-dev : 依赖: libgtk2.0-0 (= 2.24.23-0ubuntu1) 但是 2.24.23-0ubuntu1.1 正要被安装
                 依赖: libpango1.0-dev (>= 1.20) 但是它将不会被安装
                 依赖: libcairo2-dev (>= 1.6.4-6.1) 但是它将不会被安装
                 推荐: debhelper 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

如果这个库安装不成功,opencv安装完成后运行程序还是会出现错误提示:

OpenCV(3.4.1) Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /home/yangxu20/software/opencv-3.4.1/modules/highgui/src/window.cpp, line 618

在网上搜索到有些解决办法是更改软件源(比如https://www.cnblogs.com/zeze/p/linux1.html),但是修改完后还是不行。

参考其他博客发现,libgtk2.0-dev依赖得部分库需要一个比较老的版本。所以,这里使用如下命令:
sudo aptitude install libgtk2.0-dev

将较新的库降级为满足依赖关系的库,按照提示逐步操作即可。

运行后会出现一大堆消息,给出第一个解决方案一般是保留这些库文件,让选择y/n/q?,这里选择“n”;然后会继续找解决方案,有时会超时找不到,点击y继续找,直到给出得解决方案是“降级”这些库文件,选择“y”,然后等待结束就完了。

完成后可以再输入“sudo aptitude install libgtk2.0-dev”进行测试,出现已经安装对应得库文件,说明安装成功了。(此方法同样适用于安装opencv时其他不能正常安装的预备库文件)

接着按照网上的opencv安装教程安装即可。

如果之前已经安装过了,测试opencv例程的时候的时候出现的问题,那么安装完此依赖包后还需要返回opencv安装包的文件夹,重新编译安装opencv。


你可能感兴趣的:(ubuntu)