mircast工程的编译

//20150623 完成mircast工程的编译工作

下面记录一下其中遇到的问题,以便以后查找方便:


初步接触mircast,网上得来的资源作为测试工程,以便为以后提供参考

工程来源:https://github.com/albfan/miraclecast

注:这个版本是c的,还有一个c++的版本,也是albfan这个人发布的,其中c++版本设计到了大量的c++11新特性,而交叉编译器并不支持c11,故放弃。


1、将工程下下来后,作者给出了几个编译方式,autotool、cmake,并且还给出了该工程的部分依赖systemd>=213,glib,gstreamer等

其中systemd这个是linux的系统初始化程序,大概2014之后才发布,属于很新的东西,所有老版本的linux系统基本都不支持。

我下过一堆系统验证,ubuntu15.04版本的才是systemd2.19,像ubuntu14.x,Centos 7.1 ,Fedora 22等均是systemd2.08版本,所以选择了ubuntu15.04

注:使用vm11时,由于对ubuntu15.04还没有对应的vmtools,所有只能使用u盘的方式来把windows下的文件传递过去,稍显麻烦。


2、这里我选择cmake方式编译,之前试过autotool编译,需要我更新比较多的依赖,所有就放弃了,直接使用apt install cmake命令装了一个cmake

按照作者说的执行cmake编译,有些小问题,按照提示来就可解决。

问题一:#include <ststemd/sd-event.h> No such file!    

sd-event.h这个文件是systemd2.21版本发布的时候加入的,ubuntu15.04是没有的,所以就要想办法升级systemd2.21或者其他方式,网上关于升级systemd的资料比较少,我也没找到,所以回到作者的文章,他提供了一个解决systemd依赖的方法:https://github.com/albfan/systemd-ubuntu-with-dbus

把这个工程下下来,按照他说的方法编译安装,中间也遇到了很多问题:

问题一:$ sudo debuild -uc -ux -i -rfakeroot    ---提示unknow -ux ,所以这里去掉-ux,执行通过

问题二:$ sudo dpkg -i *.deb  --提示找不到文件,这里我直接忽略掉,往下执行

问题三:$ sudo add-apt-repository ppa:thopiekar/miraclecast  

执行这步的是时候它会检查依赖,这里它提示缺少很多依赖,我直接apt install XXX安装缺少的东西,每安装一次就再把这句执行一遍,直到所有依赖解决,之后的三步就没遇到问题了。

注:这里遇到一个错dpkg-source: error: can’t build with source format ’3.0 (quilt)’: no upstream tarball found at ../shellinabox_2.14.orig.tar.{bz2,gz,lzma,xz},很奇怪,最后执行rm ./debian/source/format,之后就没问题了



3、开始正式编译主工程

cmake成功,make过程中遇到一些错误

问题一:提示缺少readline.h等头文件,这里是readline库的问题,安装readline的库即可,若还提示缺少头文件,则注意修改环境变量。

问题二:提示找不到undefined reference rl_XXX,也就是没链接上readline的库,这里makefile也不好改,所以我就直接make -lreadline,成功!


编译通过:主要生成了两个可执行文件miracle-sinkctl和miracle-wifictl,若找不到生成位置可用locate XXX查找,记得先执行updatedb。

生成的miracle-wifictl和miracle-sinkctl在build/src/ctl/目录下



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值