以下就开始复写下相关编译器和开发软件的安装,不一定每一个都一样,主要是总体了解了,然后换个环境知道从哪方面去做就好了。
广告机主要就是三个部分,开发板中断,服务器(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部分,以及搭建整个环境,最后在开发板上看到效果。