详解 QT MPlayer移植及交叉编译环境
创始人
2024-08-02 12:30:36
0

QT MPlayer移植及交叉编译环境是本文要介绍的内容,MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布。此款软件可在各主流作业系统使用,例如Linux和其他类Unix系统、微软的视窗系统及苹果电脑的Mac OS X系统。MPlayer是建基于命令行界面,在各作业系统可选择安装不同的图形界面。MPlayer的另一个大的特色是广泛的输出设备支持。

一、首先要建立交叉编译环境

1、首先搭建交叉编译环境

(1)将arm-linux-gcc-4.4.3.tar.gz解压到一个空文件夹中

#tar zvxf arm-linux-gcc-4.4.3.tar.gz –C / (C的后面有空格)

改变环境

  1. #gedit /root/.bashrc  
  2. 将路径改为/opt/FriendlyARM/toolschain/4.4.3/bin  
  3. expotr PATH=$PATH:/ opt/FriendlyARM/toolschain/4.4.3/bin  

上面两行是同一条命令!

保存退出之后,要重启一下机子命令如下

  1. #reboot 

重启之后查看是否编译成功

  1. # arm-linux-gcc –v  

在最后一行如果出现了版本号就是编译成功了

修改编译调用的库链接

  1. # strings /usr/lib/libstdc++.so.6 | grep GLIBC 

结果的最后一句话:

  1. GLIBCXX_3.4 没有GLIBCXX_3.4.9  
  2. # ls -l /usr/lib/libstdc++.so.6  

结果链接(快捷方式)为

  1. /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.8  
  2. # rm –rf /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.8  
  3. #ls -l /usr/lib/libstdc++.so.6 

出现:/usr/lib/libstdc++.so.6:没有那个文件或目录

把(资源)libstdc++.so.6.0.10放入/usr/lib中

重新做链接

  1. #ln -s /usr/lib/libstdc++.so.6.0.10 /usr/lib/libstdc++.so.6 

二、QT 安装

1、下载

qt-sdk-linux-x86-opensource-2010.05.1.bin

2、增加权限

Chmod 777 qt-sdk-linux-x86-opensource-2010.05.1.bin

3、安装QT

./ qt-sdk-linux-x86-opensource-2010.05.1.bin

4、升级Linux5的fontconf库

(1)将fontconf-2.3.0.tar.gz放入/root/qt中

(2)#cd fontconf

(3)./configure --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man

(4)make

(5)#make install

5、升级freetype库

(1)将freetype-2.3.0.tar.gz放入/usr/local中
(2)#cd /usr/local
(3)#tar zxvf freetype-2.3.0.tar.gz
(4)#./configure
(5)#make
(6)#make install

6、改变环境变量

  1. vim ~/.bash_profile 

添加如下:

  1. QTDIR=/opt/qtsdk-2010.05/qt(安装路径一定要写对)  
  2. QTLIB=$QTDIR/lib  
  3. QTINC=$QTDIR/include  
  4. PATH=$QTDIR/bin:$PATH  

保存退出之后

  1. #source ~/.bash_profile  
  2. #which qmake  

查看显示如果结果是/opt/qtsdk-2010.05/qt/bin/qmake,表示设置正确

7、把QT的库路径加入so的搜索路径.

在调试QT程序时,QTCreator是在后台调用gdb来调试,因此必须要系统知道从哪里找QT的动态库.一般比较好的办法是将其加入到系统so的路径,方法是修改/etc/ld.so.conf

  1. #vi /etc/ld.so.conf  
  2. 把/opt/qtsdk-2010.05/qt/lib作为一行写入这个文件.存盘后执行命令  
  3. # ldconfig 让路径生效 

可以使用如下命令检查输出结果是否正确:

  1. #env |grep QT 

查看配置的四项内容是否挣钱

(1)将虚拟机汉化一下

打开汉化包有五个QM文件

1.将这些文件复制到QT安装目录下的share/qtcreator/translations和qt/translations文件夹,覆盖(overwrite)原来的内容

2.重新启动qt,就完成了汉化

如果汉化不成功,可以选择qt的toos->options,在环境配置窗口中,选择左侧的enviroment,在右侧找到language,选择其中的chinese。

(2)将虚拟机重启(reboot)或者注销一下

(3)检查QtCreator是否能找到Qmake

在主菜单tools-->Options-->Qt4.QtVersion,如果Auto-Dected能找到QT4.7的qmake则能正常编译.

(4)可以直接在Xshell中运行qt!方法是在命令行输入:

  1. #cd /opt/qtsdk-2010.05/bin (这样可以直接在级别3下运行QT,速度快!省内存)  
  2. #./qtcreator 

三、运行QT并创建一个项目

环境安装好后,就可以创建一个QT的应用程序.

1.用QtCreator程序向导几步就创建一个项目,而以前则是使用分散的工具来创建.

1.1选择主菜单File->newfileorproject->Qt4GUIApplication创建一个标准GUI程序.如下图↓↓↓

1.2点击下方的choose…设置项目目录,即可快速建立一个项目

1.3可以直接主界面的运行按键来运行QT的程序。也能按调试软件来进行调试

1.3.1图形界面的一些控件

1、使用widget存放MP4播放时的视频位置

2、horizontal Slider控件来调节视频的进度!

3、再者就是push button 了

1.3.2按键的程序连接使用

选点按键右键转到槽(go to slot)

1.4 无程序调试运行

当界面做好了之后

点击运行按键

1.5 图形界面出来之后就可以给按键增加功能了右键go to

slot 进入程序首先在的头文件中添加一个库

在主窗口函数中添加指针

  1. QProcess *process; 

然后在源文件MainWindow.cpp文件中的主窗口函数中添加一

线程的实例化 process=new QProcess();

然后开始编程

(1)开始播放的程序

  1. void MainWindow::on_start_clicked()  
  2. {  
  3. QString commend="/root/qt/mplayer "; // -slave -quiet -ac mad " ;  
  4. QString file="/root/qt/shi.avi ";  
  5. QString canshu=" -slave -quiet -ac mad -wid "+QString::number(ui->widget->winId());  
  6. process->setProcessChannelMode(QProcess::MergedChannels);  
  7. process->start(commend+file+canshu);  

(2)视频暂停的程序

  1. void MainWindow::on_stop_clicked()  
  2. {  
  3. if(isplaying){  
  4. process->write("pause\n");  
  5. isplaying=false;  
  6. }  
  7. else{  
  8. process->write("pause\n");  
  9. isplaying=true;  
  10. }  

(3)程序停止播放的程序

  1. void MainWindow::on_exit_clicked()  
  2. {  
  3. process->write("quit\n");  

1.6 开始调试程序

点击run 按钮然后等待构建,如果出错修改,没错的话点击

试试

四、将在PC机上面的播放器修改为可在开发板上面运行的QT界面

1、先要将4.6.3的QT编译包放到指定的位置/usr/local/Trolltech文件夹中,如果没有就创建

2、进入4.7.1的QT开发环境打开要编译的项目,选择 项目 图标,然后点击 概要第二行做好一个管理(manege)按键

3、出现如下窗口,点击Qt4右边的蓝色加号添加浏览

选择/usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin中的qmake 打开,会出现如下图像

如果没有出现√就点击右边的重新构建,然后点击应用确认

4、重新回到了项目页面

然后选择管理前面的小黑色三角,选择 4.6.3拖动鼠标向下到 构建环境变量一行点击详细

找到PATH、QTDIR、QTLIB、QTINC将之修改为4.6.3所在的位置

使用 系统环境变量 和

设置 PATH 为

  1. /usr/local/Trolltech/QtEmbedded-4.6.3-arm
  2. /bin:/opt/FriendlyARM/toolschain/4.4.3/bin:/opt/qtsdk-2010.05/qt/bin:/usr/lib/
  3. qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/
  4. usr/X11R6/bin:/opt/FriendlyARM/toolschain/4.4.3/bin:/root/bin  
  5. (红色的是添加的) 

设置 QTDIR 为

  1. /usr/local/Trolltech/QtEmbedded-4.6.3-arm  
  2. 设置 QTINC 为/usr/local/Trolltech/QtEmbedded-4.6.3-arm/include 

设置 QTLIB 为

  1. /usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib 

与此同时还要将生成文件的位置找好但别使用默认的

选定一个!

注:我命名的是MP7文件夹

然后点击run 按钮然后等待构建,又警告没事的,只要不是红色的感叹号就行其他的一切都不重要即使出现这个也没事的!

然后进入构建目录找到可执行文件拷到开发板上

五、在开发板上面

1、将mplayer test.wmv MP7三个程序复制到开发板的和PC机上运行的相同的位置下

注:我命名的叫MP7的QT

2、修改mplayer MP7的权限,使之可执行

3、将下列配置内容加入到开发板的/etc/profile文件。建议采用粘贴方式。否则输入太慢!

  1. #configure for tslib   
  2. export TSLIB_ROOT=/usr/local   
  3. export TSLIB_TSDEVICE=/dev/input/event0   
  4. export TSLIB_CALIBFILE=/etc/pointercal   
  5. export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf   
  6. export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts   
  7. export TSLIB_CONSOLEDEVICE=none   
  8. export TSLIB_FBDEVICE=/dev/fb0   
  9. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH   
  10. #configure for qt   
  11. export QTDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm   
  12. export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH   
  13. export PATH=$QTDIR/bin:$PATH   
  14. export QWS_MOUSE_PROTO=tslib:/dev/input/event0 

4、将/etc/init.d/rcS中的如下行(倒数第三行)注释掉。即不启动默认界面!

  1. #/bin/qtopia & 

5、重新启动开发板后执行如下命令

  1. ./MP7 -qw 

小结:关于详解 QT MPlayer移植及交叉编译环境的内容介绍完了,希望本文对你有所帮助。更多内容请参考编辑推荐。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...