Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2618086
  • 博文数量: 315
  • 博客积分: 3901
  • 博客等级: 少校
  • 技术积分: 3640
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-08 15:32
个人简介

知乎:https://www.zhihu.com/people/monkey.d.luffy Android高级开发交流群2: 752871516

文章分类

全部博文(315)

文章存档

2019年(2)

2018年(1)

2016年(7)

2015年(32)

2014年(39)

2013年(109)

2012年(81)

2011年(44)

分类: LINUX

2011-12-15 16:17:55

    以下就开始复写下相关编译器和开发软件的安装,不一定每一个都一样,主要是总体了解了,然后换个环境知道从哪方面去做就好了。

    广告机主要就是三个部分,开发板中断,服务器(PC机),控制页面(html+CGI);
    涉及到的软件如下:
qt-sdk-linux-x86-opensource-2009.04.1.bin --qt开发工具,安装后生成QtCreater;
qt-embedded-linux-opensource-src-4.5.3.tar.gz --qt交叉编译工具,编译生产交叉版的qmake;
sqlite-autoconf-3070701.tar.gz --sqlite数据库,小型又不错,比较适合嵌入式设备;
httpd-2.2.4.tar.gz --httpd服务器;
arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz --用于交叉编译mplayer;
libcgi-1.0.tar.gz --CGI库,这个用户获取网页相关内容,然后编译控制终端;
libxml2-2.6.30.tar.gz --xml C语言解析器;

这里不能说的很详细了,虽然是组长,但是我只负责了部分和整体框架的搭建,对有写部分不是很熟悉,做到后面CGI部分的时候,我就得靠同伴了。
   下面说下我知道的部分的安装:
 一、qt-sdk-linux-x86-opensource-2009.04.1.bin

   安装方法:
    huanglei@huanglei-laptop:~$ cd /home/huanglei/
    huanglei@huanglei-laptop:~$ ls
    automake               qt                                         模板  下载
    c++                    qtsdk-2009.04                              视频  音乐
    examples.desktop       qt-sdk-linux-x86-opensource-2009.04.1.bin  图片  桌面
    Firefox_wallpaper.png  公共的                                     文档
    1. 运行.bin文件
    huanglei@huanglei-laptop:~$ ./qt-sdk-linux-x86-opensource-2009.04.1.bin

    2. 进行图形化安装
       依次next就行了。

    2.3 注意如果你安装过:
        需要先卸载其他版本的,因为qmake版本是匹配的;
        sudo dpkg -S qmake //查看你原来安装的是什么软件包
        sudo apt-get remove qt4-qmake //然后卸载

    3.最后编译工程:
        qmake -project
        qmake
        make

    4.qmake后会提示,不能找到,是因为你没有添加/qmake工具的路径到环境变量里面;所以解决办法如下:
        cd /usr/bin/
        sudo ln -s /home/huanglei/qtsdk-2009.04/qt/bin/qmake qmake


    5.make的时候,出现了未找到-lfree-type -lobpj...等很多提示:解决方法如下:
        5.1 首先搜索下 sudo aptitude search free-type ,然后选择lib开头,-dev结尾的一个相关文件,具体含义可以上网搜查下。然后
        5.2 sudo apt-get install libfree-type-dev  这样的文件,然后再make,再看缺少哪些,依次搞定就行了。

    6.我安装过的库
     sudo aptitude search freetype
     sudo apt-get install libfreetype6-dev
     sudo aptitude search gobject
     sudo apt-get install libavahi-gobject-dev
     sudo aptitude search SM
     sudo apt-get install libsm-dev
     sudo aptitude search Xrender
     sudo apt-get install libxrender-dev
     sudo aptitude search fontconfig
     sudo apt-get install libfontconfig-dev
     sudo aptitude search Xext
     sudo apt-get install libxext-dev
     make
     ./example //运行成功
 

 二、arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz
  
    ./configure --target=arm-linux --cc=arm-none-linux-gnueabi-gcc --host-cc=gcc --as=arm-none-linux-gnueabi-as --ar=arm-none-linux-gnueabi-ar --ranlib=arm-none-linux-gnueabi-ranlib --prefix=/home/bryan/my_mplayer --enable-neon --disable-win32dll --enable-static

//ARM
./configure --target=arm-linux --cc=arm-none-linux-gnueabi-gcc --host-cc=gcc --as=arm-none-linux-gnueabi-as --ar=arm-none-linux-gnueabi-ar --ranlib=arm-none-linux-gnueabi-ranlib --enable-fbdev --codecsdir=/usr/lib/codecs --disable-win32dll --disable-mencoder --disable-dvdread --enable-static 2>&1 | tee logfile

//ARM S3C6410
./configure --enable-cross-compile --cc=arm-none-linux-gnueabi-gcc --host-cc=gcc --ranlib=arm-none-linux-gnueabi-ranlib --target=arm-none-linux-gnueabi --enable-fbdev  --disable-win32dll --disable-mencoder --disable-dvdread

//x86
./configure --target=i386-linux --cc=gcc --host-cc=gcc --as=as --ar=ar --ranlib=ranlib --enable-x11 --codecsdir=/usr/lib/codecs --disable-win32dll --disable-mencoder --disable-dvdread --enable-static 2>&1 | tee logfile

//TOP6410
./configure  --enable-armv6t2 --enable-static --enable-cross-compile --cc=arm-none-linux-gnueabi-gcc --host-cc=gcc --ranlib=arm-none-linux-gnueabi-ranlib --target=arm-none-linux-gnueabi --enable-fbdev  --disable-win32dll --disable-mencoder --disable-dvdread


在此之前首先编译安装arm-linux-gcc,步骤如下:
1. sudo tar xvf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz -C/opt
2.修改家目录下.bashrc,添加
export PATH=$PATH:/opt/opt/FriendlyARM/toolschain/4.5.1/bin

//TOP6410(arm-linux)这个可用。
//去掉armv6t2的t2;就用这个命令,然后进入mplayer目录,交叉编译mplyer,首先执行如下命令;
./configure  --enable-armv6 --enable-static --enable-cross-compile --cc=arm-none-linux-gnueabi-gcc --host-cc=gcc --ranlib=arm-none-linux-gnueabi-ranlib --target=arm-linux --enable-fbdev  --disable-win32dll --disable-mencoder --disable-dvdread


进入开发板:
cd /etc
vi eth0-setting ;修改ip地址
         reboot

         mount -t nfs -o nolock,tcp 192.168.206.100:/home/akaedu/rootfs /mnt  ;在此之前先把编译好的mplyer可执行文件和视频文件拷贝到rootfs目录下去;这个做arm内核的时候应该知道.
               
  
三、qt-embedded-linux-opensource-src-4.5.3.tar.gz
 
   配置一(不支持freetype,libjpeg,libpng,gif):
./configure -embedded arm -DQT_QLOCALE_USES_FCVT \
-qt-mouse-pc -no-freetype -no-cups -no-nis -no-iconv \
-no-qdbus -no-libjpeg -no-libpng -no-gif -no-zlib \
-no-rpath -no-qt3support -no-largefile -no-accessibility \
-no-stl -no-libmng -little-endian -prefix /opt/QtPalmtop

配置二(支持freetype,libjpeg,libpng,gif):
./configure -embedded arm -DQT_QLOCALE_USES_FCVT \
-qt-mouse-pc -qt-freetype -no-cups -no-nis -no-iconv \
-no-qdbus -qt-libjpeg -qt-libpng -qt-gif -qt-zlib \
-no-rpath -no-qt3support -no-largefile -no-accessibility \
-no-stl -no-libmng -little-endian -prefix /opt/QtPalmtop





如下方法可用:
1.解压 tar zxvf qt-embedded-linux-opensource-src-4.5.3.tgz
2.执行如下命令

配置三(支持freetype,libjpeg,libpng,gif) qte4.5.3:
./configure -embedded arm -DQT_QLOCALE_USES_FCVT \
-qt-mouse-pc -qt-freetype -no-cups -no-nis -no-iconv -no-webkit \
-nomake examples -nomake demos -nomake docs \
-no-qdbus -qt-libjpeg -qt-libpng -qt-gif -qt-zlib \
-no-rpath -no-qt3support -no-largefile -no-accessibility \
-no-stl -no-libmng -little-endian -prefix /opt/QtPalmtop

      3.make
      4.sudo make install ;这个当然


接下来交叉编译Qt程序:
这时候利用的qmake是/opt/QtPalmtop/bin/目录下的qmake
      
进入自己的工程目录:(之前先清除以前工程编译的记录)
1. /opt/QtPalmtop/bin/qmake -project
        2. /opt/QtPalmtop/bin/qmake
3. make   ;这样生成二进制文件,指令集为arm指令集;需要拷贝到/home/akaedu/rootfs/目录下去,然后把工程用到的日志文件目录,图片目录,视频,背景图片等材料拷贝到rootfs目录下去;

然后在开发板运行程序时,先将qt库拷贝到nfs共享目录下去,

cp -r /opt/QtPalmtop /home/akaedu/rootfs/
cp -r QtPalmtop/ /opt/

同时需要在开发板上添加相应的环境变量:
在开发板上: vi /etc/profile
                  添加
                      export LD_LIBRARY_PATH=/opt/QtPalmtop/lib
     export QWS_DISPLAY="LinuxFb:/dev/fb1"
     export QWS_SIZE="800x400"

然后修改自己的 main.cpp ,具体方法看工程文件,当然同时还需要找到低清的视频,修改下自己的mplayer.cpp的相关选项,设置mplyer区域为黑色,这样可以透出窗体;因为fb的分层原理。 关于说法自己多看资料就好了。


在运行的时候 ./advertising2 -qws ;qws表示用arm的显示器,具体不是很清楚 

  可以清屏幕的命令:  cat /dev/zero > /dev/fb0

四、sqlite-autoconf-3070701.tar.gz

   使用sqlite库
1. tar zxvf sqlite-autoconf-3070701.tar.gz
2. cd sqlite-autoconf-3070701/
3. ./configure
4. make
5. cd .libs/
6. sudo cp libsqlite3.so* /usr/lib/
7. sudo cp sqlite3 /usr/bin/
8. sudo cp sqlite3.h /usr/include/

  使用数据库:
sqlite3 mydatabase.db
显示,然后操作;
SQLite version 3.7.7.1 2011-06-28 17:39:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
sqlite> create table student(id integer primary key, age integer, score integer);
  sqlite> .tables
student
sqlite> 
sqlite> insert into student values(1, 12, 32);    
sqlite> select * from student;
1|12|32
sqlite> .import 1.txt student;

 使用sql脚本来操作:
cd ex2  ;进入带源码的文件夹
         gcc testdb.c -o app -lsqlite3
         ./app 
显示,然后输入信息进行插入;
id=1 name=XiaoZhang score=98 
id=2 name=XiaoZhao score=100 
please input new record:
id:
3
name:
xiaoqiang
score:
90

 httpd-2.2.4.tar.gz

   这个安装类似,解压后进入解压目录
./configure
make
        然后拷贝或者直接make install //记不太清了
        然后将libcgi-1.0.tar.gz的相关东西解压,好像是将httpd和测试代码放在一起;对了,还要配置httpd服务器的端口号和ip地址,不要和8080重复了,然后登录网页,然后应该可以看见it works的字样。
这个地方不太记得,大家想做的话可以网上搜下资料。我就主要来总结下我做的Qt+Mplayer部分,以及搭建整个环境,最后在开发板上看到效果。






阅读(2817) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~