我正在运行Kubuntu 11.10(带有KDE 4.8)
在阅读所有这些之前:
我只想从我的系统中删除OpenCV的所有痕迹,所以我可以重新开始。
整个故事
我很早以前就从https://launchpad.net/~gijzelaar/+archive/opencv2首先安装了python-opencv和libopencv(2.1我认为)。 我当时只尝试过python-opencv,完美的工作(我没有尝试使用OpenCV使用C ++代码)
然后我最近试图从源代码安装OpenCV 2.3.1,它已经安装,但编译我自己的C代码(使用OpenCV),它给了我关于libgtk没有安装的错误,也打破了我的python opencv代码,
所以我安装了libgtk2-dev库,并重新编译并安装了OpenCV 2.3.1。
错误仍然发生,所以我删除了从我正在运行cmake,make等unarred OpenCV目录。 我没有卸载(我现在意识到是我的错误)
而是从这里安装了Ubuntu的opencv 2.3包(所有的依赖): https : //launchpad.net/~gijzelaar/+archive/opencv2.3
现在的问题是,当我编译包含OpenCV的C ++代码时,仍然出现同样的错误,并且错误仍然指向我的(已删除的)OpenCV源文件夹:
OpenCV 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/anant/opencv/OpenCV-2.3.1/modules/highgui/src/window.cpp, line 275 terminate called after throwing an instance of 'cv::Exception' what(): /home/anant/opencv/OpenCV-2.3.1/modules/highgui/src/window.cpp:275: error: (-2) 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 function cvNamedWindow
正如你所看到的,错误仍然指向我编译和安装OpenCV的目录
有没有办法完全删除我的编译版本的OpenCV的所有痕迹,只是保持从Ubuntu包的文件? 正如我前面提到的,我没有“卸载”,也(愚蠢地)删除了安装清单
编辑:我再次运行包pipe理器,发现并不是所有来自ppa的opencv包已经正确安装。 所以我做了一个sudo apt-get再次安装opencv,现在我得到这个错误:
Unpacking libopencv2.3 (from .../libopencv2.3_2.3.1-3_amd64.deb) ... dpkg: error processing /var/cache/apt/archives/libopencv2.3_2.3.1-3_amd64.deb (--unpack): trying to overwrite '/usr/lib/libopencv_video.so.2.3.1', which is also in package libopencv-video2.3 2.3.1-4ppa1 dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) Unpacking opencv (from .../opencv_2.3.1-3_amd64.deb) ... dpkg: error processing /var/cache/apt/archives/opencv_2.3.1-3_amd64.deb (--unpack): trying to overwrite '/usr/bin/opencv_haartraining', which is also in package libopencv-core-dev 2.3.1-4ppa1 dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) Errors were encountered while processing: /var/cache/apt/archives/libopencv2.3_2.3.1-3_amd64.deb /var/cache/apt/archives/opencv_2.3.1-3_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1)
我只是想从我的系统中删除OpenCV的所有痕迹,所以我可以重新开始
默认情况下,从源代码构建OpenCV时,它会将其输出放在/usr/local/lib
和/usr/local/bin
。 虽然从你的错误消息来看,它看起来像是把库放在/usr/lib
和二进制文件放在/usr/bin
,所以你也可以在那里检查。
您也可以使用Linux 查找命令。 所以,要找到所有的OpenCV库,你可以做下面的事情(这可能需要一段时间):
$> sudo find / -name "*opencv*" -exec rm -i {} \;
上面的命令将找到名称中包含opencv的任何文件,并将提示您将其删除。 与往常一样,手动删除东西时要小心!
另一个选择可能是再次手动编译OpenCV(与之前完全一样), make install
以创建安装清单,然后尝试make uninstall
以查看它是否自行清理。
希望有所帮助! 🙂
你可以做一个sudo make uninstall
干净的卸载
为了删除没有“交互”的所有文件和文件夹,请使用以下命令:
sudo find / -name "*opencv*" -exec rm -rf {} \;
注意:不建议运行“递归”和“强制”删除。
如果在源代码上使用sudo make install
命令安装opencv,则转到build文件夹并使用sudo make uninstall
,它应该卸载opencv