在家重新配置实验环境,在虚拟机上安装ubuntu18、opencv等一切就绪之后,程序运行到cv::namedWindow()函数却直接abort退出了。搜了半天没搜到解决方法,于是重新写了一个只包含namedWindow()和imshow()函数的测试程序,编译正常,运行时却还是core dumped。
尝试的方法如下:
1. 按提示安装libgtk2.0-dev,还是行不通。
2. 参考 https://stackoverflow.com/questions/14655969/opencv-error-the-function-is-not-implemented 里,安装libopencv-*(好粗暴),结果依旧不行。
3. 只能重新安装opencv了,这时想起当时有个package:ippicv_2017u3_lnx_intel64_general_20170822.tgz下载失败,想着既然编译还是成功了,应该不会这么巧就用到这个还需要下载的第三方库,就放着没管- -我太天真了,结果还是按照https://blog.csdn.net/u010739369/article/details/79966263的方法,手动下载下来并修改了cmake查找路径,然后重新安装。这时候没有一大堆提示namedWindow() undefined的错误了,只有一行:
Gtk-message: failed to load module "canberra-gtk-module"
4. 行吧那就再安一个libcanberra-gtk-module,终于可以运行了