wxWidgets学习:Ubuntu下cmake编译链接wxWidgets源码报错[Could NOT find GSTREAMER]

同名微信公众号“固件工人”同步发布的文章,欢迎同时关注,及时获取最新文章。

1 测试平台

这里使用的开发环境如下。

  • 操作系统:Ubuntu 20.04.2 LTS x86_64(使用uname -a命令查看)
  • wxWidgets版本:3.2.1
  • wxWidgets最新源码下载链接:https://github.com/wxWidgets/wxWidgets/tree/master

2 问题描述和分析

使用cmake编译链接从github上下载下来的wxWidgets源码时,出现错误,错误信息如下。从报错的信息看,由于缺少GStreamer的库文件,导致wxMediaCtrl组件无法编译。

-- Could NOT find GSTREAMER (missing: GSTREAMER_VERSION GSTREAMER_INCLUDE_DIRS GSTREAMER_LIBRARIES GSTREAMER_BASE_INCLUDE_DIRS GSTREAMER_BASE_LIBRARIES GSTREAMER_VIDEO_INCLUDE_DIRS GSTREAMER_VIDEO_LIBRARIES) (Required is at least version "1.0")
-- Could NOT find GSTREAMER (missing: GSTREAMER_VERSION GSTREAMER_INCLUDE_DIRS GSTREAMER_LIBRARIES GSTREAMER_BASE_INCLUDE_DIRS GSTREAMER_BASE_LIBRARIES GSTREAMER_INTERFACES_INCLUDE_DIRS GSTREAMER_INTERFACES_LIBRARIES) (Required is at least version "0.10")
CMake Warning at build/cmake/init.cmake:497 (message):
  GStreamer not found, wxMediaCtrl won't be available
Call Stack (most recent call first):
  build/cmake/main.cmake:17 (include)
  CMakeLists.txt:100 (include)

图1 Could NOT find GSTREAMER

3 问题解决

虽然ubuntu系统中默认可以找到GStreamer的一些相关信息,但是貌似并没有完整的库可供wxWidgets链接使用。所以只能自己另外手动安装GStreamer对应的库文件。安装GStreamer库文件的方法参考以下链接。

Gstreamer使用教程(一):Linux下安装和使用Gstreamer_椰果奶茶加冰的博客-CSDN博客_gstreamer linux

对应命令如下,这个命令应该是安装gstreamer的所有组件,所以提示解压后的文件大小有1GB左右,还是挺大的。

sudo sudo apt-get install libgstreamer*

当然,安装过程并不顺利,因为出现部分内容无法下载或连接失败的错误信息,如下图2所示。

 图2 无法下载和连接失败

这时只能用以下链接中提供的方法,考虑更换软件源的下载服务器试试看。

ubuntu换国内源_慢下去、静下来的博客-CSDN博客_ubuntu国内源

我这里通过ubuntu的“软件更新器”切换软件源。在弹出的“软件更新器”窗口中,点击左下角的“设置...”按钮,在弹出的“软件和更新”对话框中选择“Ubuntu软件”页面,在“下载自:”后面的选择框中选其他,然后在弹出的对话框中,在“中国”列表中选择合适的国内软件源即可。我这里选择了“mirrors.aliyun.com”,经测试可以解决无法下载和连接失败的问题。如下图3所示。

 图3 更换软件源服务器步骤

下载失败后,更换软件源继续下载的方法如下(是参照最后面命令行中的失败重试提示),可以避免重复下载之前已经下载过的内容。

sudo apt-get install libgstreamer* --fix-missing

成功安装好gstreamer后,再用cmake重新配置,发现上面的GSTREAMER无法找到的问题已经不再出现,并且最终编译链接生成的wxWidgets已经包含了media相关的组件了。为了确保系统中已经安装的wxWidgets相关库文件同时得到更新,在cmake完之后,记得要用make install命令来安装wxWidgets库到系统中。默认安装路径下,可以通过/usr/local/lib/wx/include/gtk3-unicode-3.2/wx/setup.h文件中wxUSE_MEDIACTRL和wxUSE_GSTREAMER、wxUSE_GSTREAMER_PLAYER的配置项是否为1来判断media组件是否已经安装。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值