• 嵌入式Qt开发环境的搭建详解



    ####一、嵌入式Qt开发环境的搭建前奏 1、下载[arm-linux-gcc-4.4.3-20100728.tar.gz](http://download.csdn.net/download/zlyong0018/4646377) 2、下载[qt-everywhere-opensource-src-4.8.5.tar.gz(Qt的源码)](http://download.qt-project.org/archive/) 3、下载[qt-creator-linux-x86_64-opensource-2.5.2.bin(我的系统是64位,所以选择x86_64)](http://download.qt-project.org/archive/) 4、下载[tslib-1.4.tar.gz(触摸屏校验工具)](http://download.csdn.net/download/liuqiqi677/3177449) ####二、嵌入式Qt开发环境的搭建间奏 1、系统环境 主机操作系统:ubuntu14.04 主机编译器:gcc4.4.3, 交叉编译器:arm-linux-gcc-4.3.3 2、安装交叉编译器 (1)首先以root用户登入 (2)复制arm-linux-gcc-4.3.2.tgz到根目录下tmp文件夹里 (3)解压命令tar xvzf arm-linux-gcc-4.3.2 -C /,注意以上命令必须要有-C而且是大写的后边有个空格也要注意 (4)配置下编译环境路径,在控制台下输入 gedit /root/.bashrc 等一会出来文本编辑器后在文件最后(最后一行)加上下面代码 export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH 重新打开一个终端,使上面的配置文件生效;输入命令 arm-linux-gcc -v; 如果出现gcc的版本信息,就代表交叉编译器安装成功,会输出gcc的版本号; 3、安装触摸屏校验工具 把tslib-1.4.tar.gz放到一个目录下,比如/opt目录下。接着执行命令如下:#tar zxvf tslib-1.4.tar.gz 执行命令cd tslib,进入tslib当前目录,接着执行命令如下:#./autogen.sh 然后接着执行配置命令:#./configure --prefix=/usr/local/tslib --host=arm-linuxac_cv_func_malloc_0_nonnull=yes 最后执行编译命令和安装命令如下:(1)make (2)make install 如果以上步骤没错,则可以在/usr/local/tslib下出现我们需要的库文件,这些库文件我们移植时会用到。 编译期间出现的错误:./autogen.sh: 4: autoreconf: not found 解决办法:sudo apt-get install autoconf automake libtool 编译期间出现错误:make没有指定的makefile 解决办法:不要在虚拟机与window的共享文件中进行make,会出错 4、安装QtCreator 4.1 qt-creator-linux-x86_64-opensource-2.5.2.bin 拷贝到linux系统中,在终端中把路径切换到qt-creator-linux-x86_64-opensource-2.5.2.bin所在的路径,运行命令:./qt-creator-linux-x86_64-opensource-2.5.2.bin 就会出现图形安装界面;下面的安装步骤就和我们在windows下安装软件差不多。 注意:下的版本要和你的操作系统相匹配,32位的系统下对应32位的应用程序; 4.2 编译Qt库源码 4.2.1 解压 将源码qt-everywhere-opensource-src-4.8.5.tar.gz进行解压,并复制三份到/usr/local目录下,并分别命名为qt-pc,qt-x86,qt-arm 4.2.2 编译PC版 进入qt-pc目录,执行如下操作: #./configure #make #make install 编译过程中出现的问题: 出错:g++命令未找到 这个错误主要是ubuntu 默认 不安装 g++,apt-get install g++即可 出错:Basic XLibfunctionality test failed! 这个错误主要是因为,XLib库没有安装,所以在编译X11平台时,应该保证,以下命令正确执行:sudo apt-get install libx11-dev libxext-dev libxtst-dev 注意:可以使用 make confclean 命令 把以前的配置信息清除掉,然后再重新配置。 [点击获取更详细的步骤](http://www.cnblogs.com/1996jiwei/p/6688620.html) 4.2.3 编译x86版 进入qt-x86目录,执行如下操作: # ./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb # make # make install 安装过程比较长,没有碰到过错误。 编译安装PC版中的 qvfb: 进入qt-pc/tools/qvfb/目录,执行如下操作: #make 编译完毕,将qt-pc/bin目录下的qvfb文件复制到/usr/local/Trolltech/QtEmbedded-4.8.5/bin目录。 编译qvfb时,出现了如下错误: x11keyfaker.cpp:48:34: 致命错误: X11/extensions/XTest.h:没有那个文件或目录 编译中断。make: *** [.obj/release-shared/x11keyfaker.o] 错误 1 解决方法:sudo apt-get install xorg-dev 如果makefile中没有-lXtst选项,则修改makefile 中 LIBS 选项: 添加 -lXtst选项 4.2.4 编译ARM版 必须加上“-prefix /usr/local/Trolltech/QtEmbedded-4.8.5-arm ”参数, 不然安装后不在QtEmbedded-4.8.5-arm文件夹下,而是覆盖了QtEmbedded-4.8.5。

    # ./configure
    -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm
    -opensource
    -confirm-license
    -release -shared
    -embedded arm
    -xplatform qws/linux-arm-g++
    -depths 16,18,24
    -fast
    -optimized-qmake
    -pch
    -qt-sql-sqlite
    -qt-libjpeg
    -qt-zlib
    -qt-libpng
    -qt-freetype
    -little-endian -host-little-endian
    -no-qt3support
    -no-libtiff -no-libmng
    -no-opengl
    -no-mmx -no-sse -no-sse2
    -no-3dnow
    -no-openssl
    -no-webkit
    -no-qvfb
    -no-phonon
    -no-nis
    -no-opengl
    -no-cups
    -no-glib
    -no-xcursor -no-xfixes -no-xrandr -no-xrender
    -no-separate-debug-info
    -nomake examples -nomake tools -nomake docs
    -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
    如果放弃配置,则使用命令:# make confclean
    编译:# make
    安装:# make install

    安装完成后,在/usr/local/Trolltech目录中有三个文件夹:Qt-4.8.5、QtEmbedded-4.8.5、QtEmbedded-4.8.5-arm。
    4.3 安装完后
    4.3.1 qvfb的测试
    运行qvfb,提示了如下错误,在网上也查了很多种解决办法,最后还是没有解决; 有的说要重新编译内核,并带上参数;觉得比较麻烦,就没有去尝试;不过这个错误并不影响我们仿真模拟Qt4程序。
    4.3.2 QtCreator编译前的配置
    X86的调试编译与调试
    (1)打开QtCreator ,工具---->选项--->构建和运行 进行设置,在Qt版本菜单下,手动设置选择qmake路径
    (2)打开QtCreator 对其进行设置,点击左边的项目,选择运行,对其进行设置,在参数里添加 -qws参数
    (3)编译与运行,现在终端 输入命令:qvfb -width 800 -height 480 & 打开虚拟缓冲端;然后就可以在QtCreator对程序进行编译、运行了;
    关于ARM移植的那部分还没有做,等以后自己做的话,再补充。

  • 相关阅读:
    aaa
    记一次Vue实战总结
    Data too long for column 'xxx' at row 1MySql.Data.MySqlClient.MySqlPacket ReadPacket() 报错解决
    uni-app 监听返回按钮
    微信H5分享外部链接,缩略图不显示
    uni-app 动态控制下拉刷新
    vueX 的使用
    uni-app H5 腾讯地图无法导航
    uni-app支付功能
    hooks 与 animejs
  • 原文地址:https://www.cnblogs.com/1996jiwei/p/6687608.html
Copyright © 2020-2023  润新知