我正在尝试在H3ULCB上运行对象检测算法(正在使用OpenCV 2.4.13.7)。它正在提供libGTK,如下所示
root@h3ulcb:/media/2.4.13_algo_target_# ./main_
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or [ 1976.641753] audit: type=1706
Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvWaitKey, fil7
terminate called after throwing an instance of 'cv::Exception'
what(): /media/2.4.13.7_pckage/modules/highgui/src/window.cpp:567: error: (-2) The function is not implemented. Rebuild the library with Wiy
Aborted (core dumped)}
为解决该错误,我尝试在H3ULCB上安装libGTK软件包(libgtk2.0-dev_2.24.31-2_arm64.deb),但未将其安装到目标。
* pkg_extract_data_file_names_to_stream: Failed to extract data.tar.gz from package '/media/libgtk2.0-dev_2.24.31-2_arm64.deb'.
* pkg_get_installed_files: Error extracting file list from /media/libgtk2.0-dev_2.24.31-2_arm64.deb.
* opkg_install: Cannot install package libgtk2.0-dev.
用于H3ULCB的BSP和SDK是使用yocto构建的,详细信息如下:
Yocto版本:2.23
Poky:2.1.3
通过从apt-get管理器安装libgtk2.0
库,可以在本机Linux(Ubuntu16.04)上解决相同的错误。但是软件包管理器apt
和dpkg
尚未安装在目标上。构建图像时,我尝试在yocto层中添加这些管理器。
H3ULCB上当前可用的软件包管理器是OPKG。由于OPKG适用于.IPK软件包,但不适用于libgtk2.0
上的.IPK软件包,因此我已将.deb软件包转换为.IPK软件包。在H3ulcb上执行.IPK软件包时:
root@h3ulcb:/media# opkg install libgtk2.0-dev_2.24.31-2_arm64.ipk
Collected errors:
* open_outer: Failed to open package 'libgtk2.0-dev_2.24.31-2_arm64.ipk': Unrecognized archive format
* pkg_extract_control_file_to_stream: Failed to extract control.tar.gz from package 'libgtk2.0-dev_2.24.31-2_arm64.ipk'.
* pkg_init_from_file: Failed to extract control file from libgtk2.0-dev_2.24.31-2_arm64.ipk.
在软件包libgtk2.0-dev_2.24.31-2_arm64.deb
中,有3个文件
control.tar.gz
data.tar.xz
debian-binary
在H3ULCB上执行.deb文件时,错误显示为data.tar.gz
而不是data.tar.xz
,如下所示:
pkg_extract_data_file_names_to_stream: Failed to extract data.tar.gz from package '/media/libgtk2.0-dev_2.24.31-2_arm64.deb'.
我已经将data.tar.xz转换为data.tar.gz,但是如何将这些文件3个文件打包回.deb包中?