qt-opensource-everywhere编译

安装QT嵌入式开发环境花了4天时间,记录其中过程点滴 。
p { margin-bottom: 0.21cm; }
1 、系统环境以及软件准备 
主机操作系统: Ubuntu 9.04
主机编译器: gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)
交叉编译器: arm-linux-gcc 3.4.1
软件安装包:(软件包事先下载到了主目录下的 Qt 目录) 
qt-everywhere-opensource-src-4.7.0.tar.gz ( 适合 x11 ,embedded)
2. 下载 qt-everywhere-opensource-src- 4.6.2.tar.gz 
下载地址: http://ftp3.ie.freebsd.org/pub/trolltech/pub/qt/source/ 下载 
3. 安装 qt-x11 ( 主要是为了得到 assistant ,designer ,qvfb,uic 等工具 )
A 、编译安装 qt-x11 到 /usr/local/qt-x86 目录 
解压: tar xzvf qt-everywhere-opensource-src-4.7.0.tar.gz
进入解压目录: cd qt-everywhere-opensource-src-4.7.0
配置: ./configure -prefix /usr/local/qt-x86 -qvfb
编译: make
安装: make install 
NOTE: 配置时要加上 -qvfb ,否则后面无法编译生成 qvfb ( Qt/Embedded Virtual Framebuffer ) 工具 
B 、编译安装 qvfb 
进入 qvfb 源文件目录: cd qt-everywhere-opensource-src-4.7.0/tools/qvfb/
编译: make
安装: sudo make install
然后将 
完成后会在 /usr/local/qt-x86/bin 里找到 qvfb
p { margin-bottom: 0.21cm; }
4. 编译安装 qt-embedded
这里要编译 qte 的两个版本, qte for x86 ( 主要是生成在 x86 体系结构(即开发主机上)通过 qvfb 运行的工具和库文件 ) , 
qte for arm( 主要是生成在 arm 体系结构(即开发板上)直接运行的工具和库文件 )
qte for x86 : 
A 、解压 qt-everywhere-opensource-src-4.6.2.tar.gz
解压: tar xzvf qt-everywhere-opensource-src-4.6.2.tar.gz
B, 进入刚才解压得到的目录 
cd qt-everywhere-opensource-src-4.6.2
C, 编译并安装 qte-for x86( 在 /usr/local/qte-x86 下生成 一些工具和相应的库文件 )
p { margin-bottom: 0.21cm; }
配置: ./configure -prefix /usr/local/qte-x86 -qvfb -qt3support -debug-and-release -system-zlib -system-libtiff -system-libpng -system-libjpeg -qt-libmng -make libs -nomake examples -nomake demos -nis -no-cups -xplatform qws/linux-x86-g++ -embedded x86 -depths 16,24,32 -qt-gfx-qvfb -no-gfx-linuxfb -no-gfx-transformed -no-gfx-vnc -no-gfx-multiscreen -plugin-sql-sqlite -no-glib -dbus -qt-kbd-qvfb -qt-mouse-qvfb
不成功则换其他的!!!
sudo ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0 -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb ( 最后一个参数可能要删除 )
( 原先编译了 examples, demos 的,但一直出现错误,才有了后面列的几个错误,最后遇到一个错误解决不了了,就去掉了那两个模块,但现在 qvfb 还是有问题 , 有两个鼠标,一个一直飘, )
相关参数可以 用 ./configure -help 查看,感觉 Qt3 和 Qt4 的配置参数还是有点区别的,第一次我加了 -qt-mouse-usb 报告说 不识别这个参数。 
编译: make
安装: make install 
( 安装完成后就会在 /usr/local/qte-x86 下生成 一些工具和相应的库文件,当然可以改 -prefix yourDIR 不加 这个参数会默认安装在 /usr/local/Trolltech/***)
p { margin-bottom: 0.21cm; }
qte for arm : 
可以把刚才解压的目录改名或者删除(如果没有足够空间的话) 
A 、解压 qt-everywhere-opensource-src-4.6.2.tar.gz
解压: tar xzvf qt-everywhere-opensource-src-4.6.2.tar.gz
B, 进入刚才解压得到的目录 
cd qt-everywhere-opensource-src-4.6.2
C, 编译并安装 qte-for arm( 在 /usr/local/qte-arm 下生成 一些工具和相应的库文件 )
配置: ./configure -prefix /usr/local/qte-arm -debug-and-release -qt3support -qt-zlib -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake examples -nomake demos -nomake docs -no-cups -iconv -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 8,16,24,32 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-qvfb -no-gfx-vnc -no-gfx-multiscreen -no-dbus -qt-sql-sqlite -qt-kbd-qvfb -qt-kbd-tty -qt-mouse-pc -no-glib -qt-mouse-tslib -I/arm2410s/buildTSlib/include -L/arm2410s/buildTSlib/lib -D__ARM_ARCH_6__ 
( 最后的参数 -D__ARM_ARCH_5TEJ__ 是出现了后面的第七个错误 #error "Not supported ARM architecture" 后又重新回来加上的,加上后指明了适合的平台就没这个错误了 )
参数 -qt-mouse-tslib -I/arm2410s/buildTSlib/include -L/arm2410s/buildTSlib/lib 是说我用的是 tslib ,后面的- I ,- L 分别指明了要包含的头文件和库文件, /arm2410s/buildTSlib/ 是我编译 tslib-1.0 是生成文件的目录,详细编译 tslib 可以参见一武大女生的博客: http: //blog.chinaunix.net/u1/33412/showart_273400.html
编译: make
安装: make install 
5. 设置环境变量 
A :针对 qte for x86 的 
cd /usr/local/
sudo gedit setenv-x86
编辑完后的内容如下: 
export QT4DIR=/usr/local/qt-x86
export QTEDIR=/usr/local/qte-x86
export PATH=$QTEDIR/bin:$QT4DIR/bin:$PATH
export LD_LIBRARY_PATH=$QT4DIR/lib:$QTEDIR/lib:$LD_LIBRARY_PATH
保存退出
p { margin-bottom: 0.21cm; }
B :针对 qte for arm 的
sudo gedit setenv-arm
编辑完后的内容如下:
export QT4DIR=/usr/local/qt-x86
export QTEDIR=/usr/local/qte-arm
export PATH=$QTEDIR/bin:$QT4DIR/bin:$PATH
export LD_LIBRARY_PATH=$QT4DIR/lib:$QTEDIR/lib:$LD_LIBRARY_PATH
保存并退出
要运行哪个版本就设置相应的环境,如要在主机上用qvfb ,就用 运行:. setenv-x86 ( 注意点后面有个空格 )
6 . 配置两个快速启动脚本
[[email protected] bin]# cat qvfb.sh
/usr/local/Trolltech/QtEmbedded-4.4.1/bin/qvfb -width 640 -height 480 -depth 16 &
7 。使用
开机后运行. qvfb.sh
就可以进入工作环境进行编程和调试的工作了。
注意,第一次运行eclipse 时会提示你进行Qt 的设置,将路径设置到Qte/bin 路径下即可。
千万不要关闭qvfb 窗口,不然屏幕上部会花屏,键盘输入也会被截断。
每一个程序,在Eclipse 中设置其启动参数 -qws 。
我在usr/local/bin 下创建了qvfb.sh ,把5 和6 步写在了一起。export 了一些环境变量(qte-for-arm) ,配置 qvfb 和 eclipse ,然后使用前在任何路径下输入. qvfb.sh 即可。然后. /qvfb.sh , qmake -project , qmake xxx.pro , make , ./xxx -qws;
对qte-for x86的环境变量,编译程序时使用x11还是qte-x86是有规律的。打开终端后,若不运行. qvfb.sh, 编译使用的是x11,只要开了一次qvfb,则以后编译的全是qte-x86,除非重新打开终端

时间: 2024-10-12 08:32:56

qt-opensource-everywhere编译的相关文章

Qt源码编译

Qt源码编译 [email protected] Key words. Qt, 源码编译 1.Introduction 随着Qt版本升级,源码编译出来的库体积越来越大.如果只是用Qt来做GUI,Qt提供的预编译库中有很多很功能不会用到,所以如果自己从源码编译Qt,一是可以只使用自己程序用到的功能,使自己发布程序的体积尽量小:还有如果对GUI开发感兴趣,就可以自己对源码进行Debug.本文记录一下从源码编译Qt的方法. 2.Download Qt Source Code 因为只用到Qt基本的功能,

记录下 QT Linux 静态编译遇到的坑

Qt下静态编译Qt,根据我的经验,如果按照Windows下那种直接拿官方sdk安装之后的文件来编译是行不通的,需要直接下载Qt的source包,目前诺基亚的源码叫做qt-everywhere-opensource-src的tar包,到网上一查,乖乖,大部分人编译这个包居然花费了12-13个小时!但是,根据我在Windows下静态编译Qt的经验,其实这之中很多东西都是可以不用编译的,最终我大约用了40分钟编译完成了全部内容.如果你直接使用官方的sdk安装,那么你就已经有了一个动态库,现在你又通过源

QT - windows下编译坏境安装

qt在windows下的使用方式有两种: 1.将qt内置在vs下,例如,内置在vs2010下,使用vs的编译器及调试器. 2.在windows下,使用qt creator以及MingW作为编译器的使用. 当然两种方式也可以共存. 一.现在讲解第一种方式,qt4.8.5内置在vs2010下: 下载:1.“qt-win-opensource-4.8.5-vs2010.exe” 注意为安装版,不需要编译. 2.“qt-vs-addin-1.1.7.exe” 直接安装就可以,安装后,运行VS2010,菜

【Qt】VS2010编译Qt5.3.2 64bit

讨论QQ群:135202158 1. 为什么要这么做 在Windows下,Qt官网默认提供的二进制版本大多是32位,目前(2015.01.24)只对VS2013提供了64位版本,如下图所示: 为了适应我目前安装的VS2010 IDE,也为了根据自己的需要编译特定的库和插件(比如去掉webkit之类),需要直接从源码编译Qt. 本例编译的是Qt5.3.2版本,应该也适用于Qt5.4.0. 2. 准备 首先,当然需要一个C++编译器,由于一些兼容性原因,我需要用Visual C++ 2010, 也可

Qt使用MinGW编译,如何忽略警告

Qt编译时经常出现以下警告: warning: unused parameter 'arg1' [-Wunused-parameter] warning: unused variable 'i' [-Wunused-variable] 原因是由于某些函数参数或者某些变量未使用,这在程序当中有时候很正常:所以个人认为此警告意义不大,可以忽略它. 方法一:在提示警告函数里面添加Q_UNUSED(arg1); 方法二:(推荐) 在pro工程文件结尾处使用QMAKE_CXXFLAGS.选项格式: -W[

Qt使用MinGW编译,如何忽略警告

Qt编译时经常出现以下警告: warning: unused parameter 'arg1' [-Wunused-parameter] warning: unused variable 'i' [-Wunused-variable] 原因是由于某些函数参数或者某些变量未使用,这在程序当中有时候很正常:所以个人认为此警告意义不大,可以忽略它. 方法一:在提示警告函数里面添加Q_UNUSED(arg1); 方法二:(推荐) 在pro工程文件结尾处使用QMAKE_CXXFLAGS.选项格式: -W[

Cocos2d-x 3.X Qt MinGW版本编译运行

自Cocos2d-x 3.X引入了C++ 11特性,在Windows平台上的支持就仅限VS 2012,其实还可以尝试MinGW版本,GitHub上有MinGW版本的Qt Creator工程. 地址:https://github.com/sergey-shambir/cocos2d-x/tree/qtcreator           https://github.com/akof1314/cocos2d-x/tree/qtcreator Pull Request:https://github.c

qt引入VS2010编译的dll

在qt中引入dll文件的时候,如果这个dll是qt编译的,直接把dll和lib文件拷到目录下,然后用 #pragma comment(lib,"./xx.lib") 引入这个dll就可以用里面的函数了. 但是,这次我用vs2010编译了一个dll,用相同的办法,结果发现qt会报错,上论坛查了一下,发现用以下方式就可以在qt中正确引入vs2010编译的dll文件: 在pro文件里加上 LIBS += -LD:\test\test1 -ltest 就是在-L后面加上绝对路径,-l后面加上l

Linux Mint (应用软件:QT 5.X编译错误)

我们在前面介绍了如何安装QT,安装完后可以使用它编写QT程序.使用QT编写程序还是一如既往的好用,不过在编译QT程序的时候遇到了编译错误.当我们编译写好的QT应用程序时,提示"cannot find -lGL".下面是错误的截图: 其实该错误是因为链接时找不到OpenGL库,这说明我们的系统中缺少OpenGL库.不过,我们可以使用QT创建标准的C程序,这时候编译程序不会产生错误,因为标准的C程序不会使用OpenGL图形库. 既然是缺少OpenGL图形库造成了编译错误,那么我们在系统中安

QT的MyQL编译

1. 查看文档有说明如下: 很简单,不过实际操作时候CMD要先执行vcvars32.bat后,设置好对应的环境变量. 主要是遇到即使在mysql.pro中添加了QMAKE_LFLAGS *= /MACHINE:X64标记64位编译也提示错误. 因此,后面使用VS中直接打开PRO文件,设置工程为X64编译通过. 实际的QT程序需要附带libmysql.dll才能够连接MYSQL数据.