历史上的今天
返回首页

历史上的今天

今天是:2025年02月09日(星期日)

正在发生

2020年02月09日 | ARM qt 4.8.5 phonon

2020-02-09 来源:eefocus

配置ARM平台的Qt遇到过很多困难,特别是增加phonon支持,更是麻烦,

编译phonon之前,必须先编译必要的依赖包,否则不会成功,

其中设置PKG_CONFIG_PATH很关键,让后面安装的包可以找到包依赖

phonon依赖以下几个包,所以先安装,我把这几个包全部安装在/opt/gst/:

  • libxml2 v2.7.7 or later

  • libcheck v0.9.8 or later

  • liboil v0.3.2 or later

  • gstreamer v0.10.0 or later

  • gst-plugins-base v0.10.0 or later

其中liboil又依赖glib,所以安装liboil之前应该先安装glib

/home/cody/gst是编译的主目录,如果出现没找到某某包的错误,应先检查PC Linux环境是否已经安装相应的包

cd /home/cody/gst

export PKG_CONFIG_PATH=/opt/gst/lib/pkgconfig

 

libxml2

wget ftp://xmlsoft.org/libxml2/libxml2-2.7.2.tar.gz 


tar xvf libxml2-2.7.2.tar.gz 


cd libxml2-2.7.2 


./configure CROSS_COMPILE=arm-linux- --host=arm-linux --prefix=/opt/gst 


make 


make install 

glib

git clone git://git.gnome.org/glib 


cd glib 


git checkout -b stable 2.22.3 


./autogen.sh –noconfigure 


touch arm.cache gedit arm.cache 


复制下面内容到arm.cache: 


glib_cv_long_long_format=yes 

glib_cv_stack_grows=no 

glib_cv_working_bcopy=no 

glib_cv_uscore=no 

ac_cv_func_posix_getpwuid_r=yes 

ac_cv_func_nonposix_getpwuid_r=no 

ac_cv_func_posix_getgrgid_r=no


./configure --cache-file=arm.cache --host=arm-linux --prefix=/opt/gst 


make 


出错一个错误: libgio-2.0.so, not found 


解决: make LDFLAGS="-rpath $PWD/gmodule/.libs"


make install

liboil

git clone git://anongit.freedesktop.org/liboil 


cd liboil 


git checkout -b stable liboil-0.3.15 


./autogen.sh ./configure --prefix=/opt/gst/ --host=arm-linux 


make 


make install

libcheck

下载:http://sourceforge.net/projects/check/  目前为止最新版本是 check-0.9.11.tar_2.gz


解压,进入源代码目录 配置:


./configure --prefix=/opt/gst --host=arm-linux 


make


make install

gstreamer

git clone git://anongit.freedesktop.org/gstreamer/gstreamer 

cd gstreamer 

git checkout -b stable RELEASE-0.10.25


./autogen.sh --noconfigure


./configure --build=i686-linux --host=arm-linux  

--prefix=/opt/gst/ --enable-playbin2 --disable-loadsave --disable-gtk-doc  

ac_cv_func_register_printf_function=no --disable-tests --disable-valgrind 

错误: 


../arm-none-linux-gnueabi/bin/ld: cannot find -lgobject-2.0


解决: 切换到普通用户再重头来一次 



make


make install

gst-plugins-base

先安装liboil-dev: sudo aptitude install liboil-dev


git clone git://anongit.freedesktop.org/gstreamer/gst-plugins-base 

cd gst-plugins-base 

git checkout -b stable RELEASE-0.10.25 

./autogen.sh –noconfigure




./configure --build=i686-linux --host=arm-linux

--prefix=/opt/gst --disable-valgrind --disable-x --disable-gnome_vfs --disable-alsa

--disable-ogg --disable-pango --disable-theora --disable-vorbis --disable-examples


make 


make install

qt-4.8.5

下载qt-everywhere-opensource-src-4.8.5.tar.gz, PC端和ARM端都是同一个文件,下载地址:http://download.qt-project.org/official_releases/qt/4.8/4.8.5/qt-everywhere-opensource-src-4.8.5.tar.gz

解压进入qt主目录然后配置,如果没问题的话,将不会看到phonon不能被支持之类的

./configure

-embedded arm

-prefix /opt/qt-4.8.5-arm

-confirm-license

-opensource

-xplatform qws/linux-arm-g++

-v

-no-largefile

-opensource

-confirm-license

-no-xmlpatterns

-no-qt3support

-multimedia

-audio-backend

-glib

-phonon

-phonon-backend

-declarative

-qt-mouse-tslib

-I/opt/tslib/include

-L/opt/tslib/lib

-I/opt/gst/include

-L/opt/gst/lib

-I/opt/gst/include/glib-2.0

-I/opt/gst/lib/glib-2.0/include

-I/opt/gst/include/gstreamer-0.10/gst

-L/opt/gst/lib/gstreamer-0.10

-force-pkg-config


我这里配置完成之后提示如下:

Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into /opt/qt-4.8.5-arm

To reconfigure, run 'make confclean' and 'configure'.

 

检查configure没问题之后

make

到这里,好像都没什么问题了,make也进行了一二个小时吧,本以为可以通过, 事实是没那么顺利…

出现好多这样的错误:

/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libgstapp-0.10.so.0, needed by /home/cody/gst/qt-4.8.5-arm/lib/libQtWebKit.so, not found (try using -rpath or -rpath-link)

/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libgstinterfaces-0.10.so.0, needed by /home/cody/gst/qt-4.8.5-arm/lib/libQtWebKit.so, not found (try using -rpath or -rpath-link)

/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libgstpbutils-0.10.so.0, needed by /home/cody/gst/qt-4.8.5-arm/lib/libQtWebKit.so, not found (try using -rpath or -rpath-link)


ls /opt/gst/lib 可以看到所需要的库都有,为什么就是找不到呢,肯定跟编译器有关, 应该就是编译器找不到这些共享库,查了好久不知道如何添加路径到编译器的搜索路径里, 但是可以查到编译器会去搜索哪些路径:

$ arm-none-linux-gnueabi-gcc -print-search-dirs | grep libraries | sed 's/:/n/g'

libraries

 =/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/

/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/lib/arm-none-linux-gnueabi/4.5.1/

/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/lib/

/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/lib/arm-none-linux-gnueabi/4.5.1/

/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/lib/

/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/arm-none-linux-gnueabi/4.5.1/

/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/


最笨的办法,只好把/opt/gst/lib全部复制到

/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/

再make,这次终于可以通过了

推荐阅读

史海拾趣

中环(Central)公司的发展小趣事

中环公司的前身可以追溯到1958年成立的天津市半导体材料厂。随着技术的不断进步和市场需求的增长,公司在1978年开始涉足区熔单晶硅制造领域,并于1981年正式进入太阳能单晶硅制造领域,成为国内最早涉足光伏领域的企业之一。这一转变不仅体现了中环对市场趋势的敏锐洞察,也为其后续在光伏领域的发展奠定了坚实的基础。

Galaxy Semi-Conductor Co Ltd公司的发展小趣事

飞虹光电科技集团在转型过程中,相继成立了多家高科技企业,如山西飞虹微纳米光电科技有限公司、山西飞虹半导体照明有限公司等。这些企业之间形成了良好的协同发展机制,共同推进半导体激光器和LED材料的研发与应用。通过产学研一体化模式,飞虹系列企业依托多所高等院校技术平台,不断提升自身研发实力和市场竞争力,为中国电子行业的发展贡献了重要力量。

Hi-G Relays公司的发展小趣事

山西飞虹激光科技有限公司于2010年在中国山西成立,并迅速在北京设立分公司,将北京作为战略重心,拓展全国市场。仅两个月后,飞虹激光的研发&生产中心便设立并投入生产,展现了公司的强大执行力和决心。2012年,飞虹激光积极参与国际展会,如慕尼黑上海光博会,展示了其F3015激光切割机、激光熔覆系统等高端产品,不仅提升了公司知名度,也彰显了其在激光技术领域的专业水平和创新能力。

Carlisle Interconnect Technologies公司的发展小趣事

随着电子行业的快速发展,Carlisle Interconnect Technologies不断进行技术升级和产品创新。公司不断引进先进的生产设备和技术,提升产品的质量和性能。同时,公司还积极拓展产品线,从最初的绝缘电线电缆扩展到连接器、传感器等多个领域。这种多样化的产品策略使得公司能够更好地满足客户的多样化需求,也在市场上取得了更大的成功。

AnalogicTech公司的发展小趣事

AnalogicTech公司成立于1997年,总部位于美国硅谷。在创立初期,公司面临资金短缺、市场竞争激烈等诸多挑战。然而,凭借创始团队对半导体技术的深刻理解和前瞻视野,AnalogicTech成功开发出一系列具有创新性的产品,逐渐在市场中站稳脚跟。

ELMEC Technology Of America Inc公司的发展小趣事

随着产品的不断完善,ELMEC开始考虑如何进一步拓展市场。然而,国际市场的竞争异常激烈,ELMEC的产品面临着来自各大跨国公司的挑战。为了打开市场,李明带领团队深入调研,了解客户需求,不断优化产品性能。同时,他们还积极参加各类国际展会,与潜在客户建立联系。经过几年的努力,ELMEC的产品逐渐获得了市场的认可,销售额也稳步增长。

问答坊 | AI 解惑

电信技术名词解释:EDGE技术详解

EDGE是英文Enhanced Data Rate for GSM Evolution 的缩写,即增强型数据速率GSM演进技术。EDGE是一种从GSM到3G的过渡技术,它主要是在GSM系统中采用了一种新的调制方法,即最先进的多时隙操作和8PSK调制技术。由于8PSK可将现有GSM网络采用的GMSK调 ...…

查看全部问答>

关于拓展24C02的问题

8051单片机拓展24C02,要求编个程序,读取上次记录在24C02中的数据 这样的程序怎么编写,资料哪里可以获得,谢谢了…

查看全部问答>

求助,电磁阀

我们公司原来控制是用电磁阀带动气缸动作,因压缩空气不合格想甩掉气缸,直接用电磁阀做执行器。 不知道选什么型号的电磁阀。 要求:往复式直线运动,行程1cm,频率1分钟大约60次左右。 求大侠帮助!…

查看全部问答>

看来,这上面没有高手

看来,这上面没有高手…

查看全部问答>

SOPC 创建错误

用QuartusII 9.1中的SOPC BUILDER创建一个简单的片上系统时,点击generate报错如下:Generation skipped because the system has validation errors.我是按照一个示例逐步添加各组件的,但到了最后在选项卡上只有System contents和System generatio ...…

查看全部问答>

MSP430G2开发板学习(十一):定时器A中断(向上增长,32768K晶振)

/****************************************************************************** * 定时器A翻转P1.0,CCR0向上增长模式,32KHZ的辅助时钟 * 定时器A配置为向上增长模式,CCR0=1000-1,翻转频率为32768/(2*1000)=16.384HZ //   ...…

查看全部问答>

STM8S时钟切换问题

学习STM8S103,想把内部高速时钟切换到低速时钟,按手册上对寄存器操作,如下: void CLK_init(void) {   CLK_ICKR=0x08;   CLK_SWCR=0x02;   CLK_SWR=0xd2;   while (!(CLK_SWCR & 0x08) ...…

查看全部问答>

HC-SR501

找了很久的HC-SR501电路…

查看全部问答>

zigbee2007有关cc2530的资料

接上次https://bbs.eeworld.com.cn/viewthread.php?tid=315956&page=1&extra=page%3D1#pid1245434…

查看全部问答>

多谢帮忙!

请帮忙一下. 能否找得到    S9S12D64F0MFUER    FREESCALE   750PCS/盘 这种包装方式的尺寸规格资料. ( 带长,宽,间隔距离 ) 客人需要这个尺寸资料,来编程, 用机器来烧录. 多谢!  ( 单颗单颗物 ...…

查看全部问答>