感谢支持
我们一直在努力

Ubuntu 9.10+qt-embedded-linux-opensource-src-4.5.0+tslib-1.4.1+gcc-4.3.3+gcc-4.1移植经验

基于Ubuntu9.10+qt-embedded-linux-opensource-src-4.5.0+tslib-1.4.1+gcc-4.3.3+gcc-4.1


目标平台:TQ2440(s3c2440)+LCD w3.5-2(东华)+kernel:2.6.30.4+QT4.5   【Qtopia-2.2.0】


Nand Flash:256MB+Nor Flash:2MB+SDRAM:64MB


S3C2440-ARMV4T(哈佛)-ARM920T-ARM9


/etc/profile文件内:


export PATH=/media/_home/opt/4.3.3/bin:$PATH   【arm-linux-gcc-4.3.3】
export PATH=/media/_home/opt/EmbedSky/qt-4.5/qt-embedded-linux-opensource-src-4.5.0/tslib-1.4.1:$PATH


命令:


ln -s /usr/bin/make /usr/bin/gmake   [ubuntu 9.10]


source /etc/profile



sudo apt-get install gcc-4.1                       [?   m4 autoconf automake libtool   ]


tar   -vxjf     qt-embedded-linux-opensource-src-4.5.0_20091216   -C       /media/_home/opt/EmbedSky/qt-4.5


tar   -vxjf   tslib-1.4.1.tar.bz2    -C /media/_home/opt/EmbedSky/qt-4.5/qt-embedded-linux-opensource-src-4.5.0


编译 tslib-1.4.1:


cd   /media/_home/opt/EmbedSky/qt-4.5/qt-embedded-linux-opensource-src-4.5.0/tslib-1.4.1


./build


或者


./configure –host=arm-linux -disable-hp3600 –disable-arctic2 –disable-mk712 –disable-collie –disable-corgi –disable-ucb1x00 –disable-linear-h2200 –with-gnu-ld –prefix=$PWD/__install ac_cv_func_malloc_0_nonnull=yes


make && make install


编译qt-embedded-linux-opensource-src-4.5.0:【ARM】


/media/_home/opt/EmbedSky/qt-4.5/qt-embedded-linux-opensource-src-4.5.0/mkspecs/qws/linux-arm-g++/qmake.conf文件内:


#
# qmake configuration for building with arm-linux-g++
#


include(/media/_home/opt/EmbedSky/qt-4.5/qt-embedded-linux-opensource-src-4.5.0/mkspecs/common/g++.conf)
include(/media/_home/opt/EmbedSky/qt-4.5/qt-embedded-linux-opensource-src-4.5.0/mkspecs/common/linux.conf)
include(/media/_home/opt/EmbedSky/qt-4.5/qt-embedded-linux-opensource-src-4.5.0/mkspecs/common/qws.conf)


# modifications to g++.conf
QMAKE_CC                = /media/_home/opt/4.3.3/bin/arm-linux-gcc
QMAKE_CXX               = /media/_home/opt/4.3.3/bin/arm-linux-g++
QMAKE_LINK              = /media/_home/opt/4.3.3/bin/arm-linux-g++
QMAKE_LINK_SHLIB        = /media/_home/opt/4.3.3/bin/arm-linux-g++


# modifications to linux.conf
QMAKE_AR                = /media/_home/opt/4.3.3/bin/arm-linux-ar cqs
QMAKE_OBJCOPY           = /media/_home/opt/4.3.3/bin/arm-linux-objcopy
QMAKE_STRIP             = /media/_home/opt/4.3.3/bin/arm-linux-strip


QMAKE_INCDIR = export PATH=/media/_home/opt/EmbedSky/qt-4.5/qt-embedded-linux-opensource-src-4.5.0/tslib-1.4.1/__install/include:$PATH
QMAKE_LIBDIR = export PATH=/media/_home/opt/EmbedSky/qt-4.5/qt-embedded-linux-opensource-src-4.5.0/tslib-1.4.1/__install/lib:$PATH

load(qt_config)


命令:


cd /media/_home/opt/EmbedSky/qt-4.5


./arm_qt4.5_build [要修改]


或者:


cd ./qt-embedded-linux-opensource-src-4.5.0


./configure -prefix /media/_home/opt/EmbedSky/qt-4.5/__install/arm/ -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libjpeg -make libs -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16 -qt-gfx-linuxfb -qt-gfx-transformed -qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-glib -armfpa -qt-mouse-tslib -I/media/_home/opt/EmbedSky/qt-4.5/qt-embedded-linux-opensource-src-4.5.0/tslib-1.4.1/__install/include -L/media/_home/opt/EmbedSky/qt-4.5/qt-embedded-linux-opensource-src-4.5.0/tslib-1.4.1/__install/lib


gmake


gmake install


编译qt-embedded-linux-opensource-src-4.5.0:【X86】


cd /media/_home/opt/EmbedSky/qt-4.5


./x86_qt4.5_build [要修改]


或者:


cd ./qt-embedded-linux-opensource-src-4.5.0


./configure    -prefix /media/_home/opt/EmbedSky/qt-4.5/__install/x86/ -release -shared -fast -qt-sql-sqlite -plugin-sql-sqlite             -nomake demos -nomake examples -silent


gmake


gmake install

程序运行:


-X86上


命令


第一步运行qvfb后【先安装】
第二步运行./myapp -qws


Sun VirtualBox内linux 外windows XP共享文件夹


工具上部菜单栏:设备(D)-分配数据空间(S)- 【+】添加数据空间 -数据空间位置 D:\share-linux ; 数据空间名称 share_linux   -固定分配 -确定


内: #sudo mount   -t   vboxsf share_linux /mnt/share



arm下NFS挂载


开发板进入uboot下载模式


(超级终端下)输入命令0->1->192.168.1.53(PC的IP-linux虚拟机的IP)->192.168.1.6(开发板linux的IP)->255.255.255.0(开发板掩码)->/media/_home/root_nfs(PC的linux的NFS文件系统路径)->s(保存)->q(退出)-重启开发板


条件:网线通,串口通,开发板的uboot和linux-kernel有,PC的linux的NFS文件系统有,开发板的yaffs文件系统可以没有。



mount –t nfs 192.168.1.53:/media/_home/root_nfs /mnt/rootwd –o nolock




转载相关gcc版本问题bug:


用新立得软件包管理器安装gcc-4.1(自带的gcc4.3.2无法编译成功!但不用卸载),然后
$ sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc (gcc只是一个soft link,回头再链回到gcc-4.3就可以了)
如果不安装gcc-4.1,就会出现2个问题:
~~ /usr/include/bits/fcntl2.h:51: error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments
编译到这里的时候提示这个错误,是因为没有第三个参数,gcc 4.3.2严格的语法检查不让通过;你可以修改 gcc-<版本号>/gcc/collect2.c的1575行附近,加上第三个参数0777,变成 =”#c60a00″ style=”BACKGROUND-COLOR:transparent”>redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT, 0777); 然后就可以继续编译
~~ 尽管可以继续编译,但是还会出现这个问题:*** buffer overflow detected ***: mipsel-9tdmi-linux-gnu-ar terminated
哈,编译出来的这个程序根本就有问题!所以还是老老实实地安装gcc 4.1吧!



编译gcc-3.3.6的时候,出现以下错误:
/usr/include/bits/fcntl2.h:51: error: call to ‘__open_missing_mode’
declared with attribute error: open with O_CREAT in second argument
needs 3 arguments
这纯属软件bug,因为使用open函数的时候,如果在第二个参数中使用了
O_CREAT,就必须添加第三个参数:创建文件时赋予的初始权限.而在gcc-3.3.6/gcc/的collect2.c文件中有漏掉第三个参数的错
误,而gcc-4.3对语法错误的检查严格是出了名的(4.1就不会因此错误退出),所以就退出了.
这也是可以解决的,就是在gcc-3.3.6/gcc/collect2.c中的第1575行改为:
redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT, 0777


不懂:


如果,你不想重新编译Qt-Embedded,也可以单独编译qvfb的gfxdrivers,命令如下
            $ cd qt-embedded-linux-opensource-src-4.5.1/src/plugins/gfxdrivers/qvfb/
$/usr/local/Trolltech/QtEmbedded-4.5.1/bin/qmake
$ sudo make install

赞(0) 打赏
转载请注明出处:服务器评测 » Ubuntu 9.10+qt-embedded-linux-opensource-src-4.5.0+tslib-1.4.1+gcc-4.3.3+gcc-4.1移植经验
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏