【嵌入式开发技术之Qtopia】安装和交叉编译文档(2)——编译安装X86主机版各种QT

简介: 作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/    1. 编译安装X86主机版各种QT: 1)准备工作 $sudo apt-get install gcc-3.3 g++-3.3 build-essential libx11-dev libxext-dev uuid-dev libjpeg-dev zlib1g-dev zhcon 其中: Gcc-3.3,G++-3.3是GCC3.3版本,没有使用系统自带的4.3.1,原因是GCC4在编译QT3-X11时可能会出错。

 作者:gnuhpc 
出处:http://www.cnblogs.com/gnuhpc/ 
  

 

1. 编译安装X86主机版各种QT:
1)准备工作
$sudo apt-get install gcc-3.3 g++-3.3 build-essential libx11-dev
libxext-dev uuid-dev libjpeg-dev zlib1g-dev zhcon
其中:
Gcc-3.3,G++-3.3是GCC3.3版本,没有使用系统自带的4.3.1,原因是GCC4在编译QT3-X11时可能会出错。
Build-essential是ubuntu/debian下编译程序所必需的。
Lib-x11-dev是X11的一个开发库。
libxext-dev是Xfree86 3.x的一些扩展开发库。以上两个都是编译基于X11的Qt所必须的包。
uuid-dev,UUID是一个标帜系统中的存储设备的字符串,其目的是帮助使用者唯一的确定系统中的所有存储设备。可以标识DVD驱动器,USB存储设备以及系统中的硬盘设备等。这个是UUID的一个开发库。
libjpeg-dev是JPEG的开发库。
Zlib 是常用的压缩库。以上三个都是必须的一些外围库。
Zhcon是中文控制台。它是外挂式平台,与内核汉化不同,不需要对linux的
kernel打补丁,在主控制台上执行zhcon后,就可以进入中文平台。
<- -------------------------------------------------
$cd /usr/bin
$sudo ln -sf gcc-3.3 gcc
$sudo ln -sf g++-3.3 g++
建立gcc3.3的软链接
<- -------------------------------------------------
$cd ~
$mkdir myqt
$mv Desktop/qtopia-free-src-2.2.0.tar.gz myqt/.
$mv Desktop/qt-x11-free-3.3.8b.tar.gz myqt/.
$mv Desktop/qt-embedded-free-3.3.8b.tar.gz myqt/.
$cd myqt/
$tar zxvf qtopia-free-src-2.2.0.tar.gz
$mv qtopia-free-2.2.0/ qtopia-host
$tar zxvf qt-embedded-free-3.3.8b.tar.gz
$mv qt-embedded-free-3.3.8b qt-embedded-host
$tar zxvf qt-x11-free-3.3.8b.tar.gz
$mv qt-x11-free-3.3.8b qt3-x11
从桌面上把几个安装包移动到家目录的myqt目录,然后解压更名,目录名及其
含义如下:
Qt3-x11是主机版本的Qt-X11,qt-embedded-host是主机版本的Qt/Embedded,
qtopia-host是主机板qtopia。
2)Qt-X11的安装和基本使用
$cd qt3-x11
$( echo yes )|./configure
$make
$sudo make install
$sudo cp -R lib/* /usr/local/lib
$sudo cp -R include/* /usr/local/include
这是编译安装qt-X11的基本方法,若有错误,要看一看前边的包是否都装齐。
<- -------------------------------------------------
$export QTDIR=$PWD
$export PATH=$QTDIR/bin:$PATH
$export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
临时设置QT所需变量
$mkdir qtprogram/hello –p
$cd qtprogram/thello
$vi hello.cpp
源文件如下:

#include <qapplication.h>
#include <qlabel.h>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello Qt!", 0);
app.setMainWidget(label);
label->show();
return app.exec();
}

现在来编译我们的程序。
产生.pro工程文件
$ qmake –project
生成Makefile文件:
$qmake
编译:
$make
运行:
$./hello
这时会出现一个很小的hello窗口。
3)Qtopia2.2.0主机的安装和运行
$cd qtopia-host/
$cp /usr/local/bin/uic qt2/bin/.
$( echo yes )|./configure
$make
$make install
这是编译安装Qtopia的基本方法。Make install后系统会在image文件夹中生成Qtopia的整个文件树,其中的结构和文件都是Qtopia所要用的,当然某些库、字库以及帮助文档是可以精简的,在嵌入式移植部分我们会进行。
<- -------------------------------------------------
$cd qtopia/
$mkdir -p image/opt/qt/lib
$cp -R ../qt2/lib/ image/opt/qt/lib
$rm image/opt/qt/lib/*
将qt2目录中的字库复制到image中,这样整体文件架构比较清晰,然后删去qt2所用的链接库。
<- -------------------------------------------------
$export QTDIR=/home/inno/myqt/qtopia-host/qtopia/image/opt/qt
$export QPEDIR=/home/inno/myqt/qtopia-host/qtopia/image/opt/Qtopia
$export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH
$../qt2/bin/qvfb &
$cd image/opt/Qtopia/bin/
$./qpe &
这是运行Qtopia的基本步骤,首先设置环境变量R,Qtopia会在运行时查看QTDIR/lib/fonts,这个操作的主要目的是完成字库的加载。然后设置QPEDIR和LD_LIBRARY_PATH,Qtopia在运行时会在根据此寻找相关系统基础和Plugin插件的动态链接库。进一步要把虚拟Framebuffer开启,虚拟帧缓冲使用了共享存储区域(虚拟的帧缓冲)来模拟帧缓冲并且在一个窗口中(qvfb)模拟一个应用来显示帧缓冲。
Qtopia要在其上运行。
Qpe是qtopia的主程序
$make lupdate
这是确保翻译所必须的文件都存在并且是最新的,make lupdate针对每种语言通过调整Qtopia的“语言”这个配置选项产生了翻译文件,命名就是以appname-cn-ZH.ts这样的名字来命名的。
$bin/nct_lupdate
产生那些在源代码中没有办法找到的字符串的翻译文件。
$vi /qtopia-host/qtopia/i18n/zh_CN/.directory
[Translation]
File=QtopiaI18N
Context=Chinese(MainLand)
[Desktop Entry]
Name[]=Chinese(MainLand)
每种语言都需要一个.directory以设定语言,这个会在Qtopia的Language中显示。
$cd http://www.cnblogs.com/
$make lupdate
再次更新。
$cd i18n/zh_CN
$linguist
打开每个ts文件在Translation处写入中文,注意在确认时按Crtl+Enter,看到绿色的对勾就是更新成功了,每个文件注意要保存。
$touch QtopiaRingTones.ts QtopiaThemes.ts
在make install时可能会出现两个文件不存在的错误,所以建立两个空的就可以了。
$vi $QPEDIR/i18n/zh-CN/QtopiaDefaults.ts.
在<name>FontMap</name>将small部分修改为
<message encoding="UTF-8">
<source>Small,helvetica,10</source>
<translation>Simsun,simsun,11</translation>
</message>
修改默认字体为simsun字体。这个字体及其配置的目录fonts我已经放在http://blogimg.chinaunix.net/blog/upfile2/081109125513.gz供下载。
$lrelease *.ts
用lrelease产生QT消息文件。会有两个warning,当然是刚才那两个没有意义的空文件造成的
$cd http://www.cnblogs.com/
$make lupdate
$make install
安装文件到image目录
export QPEDIR=/home/inno/myqt/qtopia-host/qtopia/image/opt/Qtopia
export QTDIR=$QPEDIR
export PATH=$QPEDIR/bin:/home/inno/myqt/qtopia-host/qt2/bin:$PATH
export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
然后在image/opt/Qtopia下设置环境变量,
$cd $QPEDIR/bin
$qvfb &
$./qpe &
运行Qtopia。
然后在settings里的Appearance settings中进行Fonts的选择,在language中选择Chinese即可。
5)Qt-embedded的安装
$export QT2DIR=/home/inno/qt/qt-embedded-host/
$export QTDIR=$QT2DIR
$export QTEDIR=$QT2DIR
$export PATH=$QTDIR/bin:$PATH
$export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
$cd qt-embedded-host/
$./configure
$make
$make install
注意选色深时选16位即可。


               作者:gnuhpc
               出处:http://www.cnblogs.com/gnuhpc/
               除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


分享到:

目录
相关文章
|
3月前
|
C++
VS2019编译VTK-9.1.0+Qt5.15.2
本文介绍了在VS2019和Qt 5.15.2环境下编译VTK 9.1.0的过程,包括成功编译无警告和错误的截图、修改的pro文件内容,以及在QML中加入VTK的失败尝试和参考链接。
112 4
|
3月前
|
C语言 Android开发 C++
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
本文介绍了使用MTuner软件进行Qt MinGW编译程序的内存泄漏检测的方法,提供了MTuner的下载链接和测试代码示例,并通过将Debug程序拖入MTuner来定位内存泄漏问题。
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
|
3月前
|
C++
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
本文介绍了如何编译整合VTK 9.2、DICOM 0.8、DCMTK 3.6.7和Qt 6.2的步骤,包括安装Qt、CMake配置以及确认相关路径和版本设置。
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
|
3月前
|
Unix 网络虚拟化 C++
VS2022+Qt5.14.2成功编译MITK2022.10
使用VS2022和Qt5.14.2成功编译MITK2022.10的过程,包括编译结果的截图、遇到的编译问题的解决方法、两个重要的注意事项(patch文件格式的修改和ITK-gitclone-lastrun文件的存在),以及参考链接。文中详细描述了如何解决编译过程中遇到的错误C2220和警告C4819,以及如何修改文件编码和尾行格式。
170 1
VS2022+Qt5.14.2成功编译MITK2022.10
|
3月前
编译QCefView+VS2019+QT5.15.2
本文介绍了如何编译QCefView项目,并在VS2019和Qt 5.15.2环境下集成,包括编译结果、要点、cmake部署Qt的方法和相关参考链接。
148 1
编译QCefView+VS2019+QT5.15.2
|
3月前
|
人工智能
三战VS2019编译VTK7.1+Qt5.15.2
本文记录了作者在VS2019环境下编译VTK 7.1与Qt 5.15.2的历程,包括正确配置方法、遇到的编译错误以及解决过程。
|
3月前
|
人工智能 C++
初步编译QT5.15.2+VS2019+VTK8.2.0
本文介绍了在VS2019中编译QT 5.15.2和VTK 8.2.0的过程,包括编译结果、cmake库编译配置和cmake应用配置脚本,以及推荐的参考链接。
158 4
|
3月前
|
计算机视觉
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
这篇文章记录了使用VS2019编译Qt6.2.4、DCMTK3.6.7、VTK9.2.2、ITK5.3和OpenCV4.6.0的过程,包括下载和编译步骤,并提供了遇到编译错误时的解决方案和参考链接。
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
|
3月前
|
C语言 C++ Windows
QT多插件通信框架CTK编译记录
本文记录了编译QT多插件通信框架CTK的过程,包括编译结果截图、部署配置、Log4Qt编译配置、参考链接和拓展资料。文中提供了详细的编译步骤和配置文件示例,以及相关的资源链接。
QT多插件通信框架CTK编译记录
|
3月前
|
机器学习/深度学习 Java 计算机视觉
opencv4.5.5+qt5.15.2+vtk9.1+mingw81_64编译记录
本文记录了使用mingw81_64编译OpenCV 4.5.5、Qt 5.15.2、VTK 9.1的详细过程,包括编译结果截图、编译步骤、遇到的问题及其解决方案,以及相关参考链接。文中还提到了如何编译boost源码为静态库,并提供了测试代码示例。
opencv4.5.5+qt5.15.2+vtk9.1+mingw81_64编译记录

推荐镜像

更多