嵌入式开发中QT在自己pc上的模拟配置过程

1download qt-everywhere-opensource-src-4.7.1.tar.gz  

 /mnt/mywork/qt-everywhere-opensource-src-4.7.1.tar.gz

cp qt-everywhere-opensource-src-4.7.1.tar.gz qt-embedded-src-4.7.1.tar.gz

cp qt-everywhere-opensource-src-4.7.1.tar.gz qt-x11-src-4.7.1.tar.gz

2install embedded Qt: /usr/local/Trolltech/QtEmbedded-4.7.1

 

tar zxvf qt-embedded-src-4.7.1.tar.gz

cd qt-embedded-src-4.7.1

./configure -embedded x86 -qvfb

make

make install


3install x11 Qt in order to use qvfb: /usr/local/Trolltech/Qt-4.7.1

 tar cd ./configure make make install

(./configure出错其原因就在于需要安装libX11的开发包,在ubuntu/debian里包名都是libX11-dev
根据以往的经验,在./configure前主动装好下面3个包,基本上就万事大吉了
sudo apt-get install libX11-dev libXext-dev libXtst-dev
)

 

4编译qvfb

cd qt-x11-src-4.7.1/tools/qvfb

make

在qt-x11-src-4.7.1/bin下生成qvfb

cp qt-x11-src-4.7.1/bin/qvfb  /usr/local/Trolltech/QtEmbedded-4.7.1/bin

 

在真实的开发板上不用-qvfb的

 

5自己的gui.tar,

tar xvf

cd /mnt/mywork/gui/cvr_ui/examples/catalog

/usr/local/Trolltech/QtEmbedded-4.7.1/bin/qmake catalog.pro

make

 

/usr/local/Trolltech/QtEmbedded-4.7.1/bin/qvfb -width 800 -height 600 &
./catalog -qws

6第5步make会有一些错误

(1)QT的undefine...

我在catalog.pro中加上

QT += network

QT += xml

(2)正则表达式的/有时候利用//表示

(3) goto err

int val=...;

...

err

会报错,应在goto 以前定义int val;

(4)

编译qvfb的过程中出现了一个问题,如下
/usr/bin/ld: cannot find -lXtst
ubuntu没装有libxtst-dev,解决如下
sudo apt-get install libxtst-dev

 

(5)lupdate可以把.h, .cpp, .ui中需要翻译的字符串抽出来形成.ts文件
然后用linguist翻译
用lerealse生成.qm

1.修改catalog.pro,在其中添加  TRANSLATIONS = catalog_ch.ts

2.lupdate catalog.pro,生成catalog_ch. ts
3.使用linguist打开catalog_ch. ts,进行翻译,翻译结束后,保存成为qm格式的。File->Release As
或者是翻译结束后,使用命令,lrelease XXX. ts,生成qm文件。

其中load的是XXX.qm中的不包含后缀名的文件名(即XXX)。

 

7gdb

 先运行/usr/local/Trolltech/QtEmbedded-4.7.1/bin/qvfb -width 800 -height 600 &

gdb

(gdb)file catalog

(gdb)list

1   in   ../sysdeps/i386/elf/start.S
表明我在用gcc编译的时候没有加上选项-g

因此我改Makefile加上-g

 

安装ddd后调试程序

ddd catalog

显示代码处点lookup可以进入深一层代码

(gdb)r -qws

(gdb)n

 

你可能感兴趣的:(正则表达式,gcc,嵌入式,qt,download,makefile)