搜档网
当前位置:搜档网 › Ubuntu下QT源码编译详细过程

Ubuntu下QT源码编译详细过程

Ubuntu下QT源码编译详细过程
Ubuntu下QT源码编译详细过程

10 .QT

10.1 qt的源码编译

安装编译源码的所需工具和库

X11:

1. apt-get install libX11-dev libXext-dev libXtst-dev

2. apt-get install xorg-dev

3. apt-get install libtool

4. apt-get install autoconf

5. apt-get install g++

ARM:

1 apt-get install qt3-dev-tools

apt-get install qt4-qmake

2 安装触屏支持库tslib-1.4

tar -zxvf tslib-1.4.tar.gz

cd tslib进入tslib目录下,目录内容如图10-1所示:

图10-1 tslib

./autogen.sh

该shell脚本的正确的执行过程如图10-2所示:

图10-2 autogen.sh执行过程

设置环境变量

CC=arm-linux-gcc

讲ac_cv_func_malloc_0_nonnull=yes重定向输入到arm-linux.cache

echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

执行configure文件

./configure --prefix=/opt/ts/ --host=arm-linux --cache-file=arm-linux.cache

执行make编译

make

执行make install安装

make install

检验是否安装成功,在/opt/ts/下面存在的四个文件夹,则安装成功,如图10-3所示:

图10-3 ts安装目录

X11版本编译安装过程:

第一步:解压

工程路径:/home/lizhangjie/install

目标文件:qt-everywhere-opensource-src-4.6.3.tar.gz

通过tar命令将目标文件解压到工程路径下:

tar –zxvf qt-everywhere-opensource-src-4.6.3.tar.gz

注意:tar.bz2结尾的压缩文件才会用到-jxvf 参数。

解压之后会得到文件夹qt-everywhere-opensource-src-4.6.3,编译该源码得到的最终是X11版本的,我们后面还要编译ARM版本。

第二步:执行configure文件

我们首先的通过执行configure文件,让系统按照configure文件生成各级Makefile。cd qt-everywhere-opensource-src-4.6.3,qt-everywhere-opensource-src-4.6.3文件夹下的内容,如图10-3所示:

图10-3 qt-everywhere-opensource-src-4.6.3

执行完configure命令之后,直接make进行编译,时间大约2.5小时。最后执行make install。以上三个命令执行完之后,可以在/usr/local/Trolltech/查看是否有文件夹Qt-4.6.3,有则说明已经编译并安装成功,如图10-4所示:

图10-4 安装目录

ARM版本的编译:

第一步:解压

通过tar命令将目标文件解压到工程路径下:

tar –zxvf qt-everywhere-opensource-src-4.6.3.tar.gz

通过命令mv qt-everywhere-opensource-src-4.6.3 qt-embeded-opensource-src-4.6.3-arm

我们需要的是qt-embeded-opensource-src-4.6.3-arm文件夹。图10-5所示:

图10-5 qt-embeded-opensource-src-4.6.3-arm

第二步:执行configure文件

./configure -prefix /usr/local/Trolltech/Qt-4.6.3-arm -release -shared -fast -xplatform qws/linux\

-arm-g++ -embedded arm -depths 16 -no-qvfb -no-qt3support -qt-sql-sqlite -qt-zlib -qt-libpng -qt-\ freetype -qt-mouse-tslib -no-mouse-pc -no-mouse-linuxtp -nomake examples -nomake demos -nomake docs -nomake tools -I/opt/ts/include -L/opt/ts/lib

图10-6 configure 成功

执行完configure命令之后,还需要修改三个文件:

cd qt-embeded-opensource-src-4.6.3-arm

1. /src/3rdparty/freetype/include/freetype/config/ftconfig.h

330行

"orr %0, %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */

2. /src/3rdparty/webkit/WebCore/Makefile

14行和15行

-D__ARM_ARCH_4T__

图10-7 Makefile修改

3. /src/script/Makefile

14行和15行

-D__ARM_ARCH_4T__

第三步:make编译和make install安装

直接make进行编译,时间大约2.5小时。最后执行make install。以上三个命令执行完之后,可以在/usr/local/Trolltech/查看是否有文件夹Qt-4.6.3-arm,有则说明已经编译并安装成功,如图10-8所示:

图10-8 Qt-4.6.3-arm

10.2 第一个qt工程

第一步:设置qmake的编译版本

X11

在/usr/local/Trolltech/ Qt-4.6.3 创建setenv.sh,编辑添加的内容为:

#!/bin/bash

QTDIR=/usr/local/Trolltech/Qt-4.6.3

PATH=$QTDIR/bin:$PA TH

LD_LIBRARY_PA TH=$QTDIR/lib:/opt/ts/lib:$LD_LIBRARY_PATH

然后执行source setenv.sh。

第二步:创建工程目录并qmake编译

工程目录:/home/lizhangjie/qt/helloworld

创建hello.cpp的C++源文件,编辑内容:

#include

#include

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

QLabel *label = new QLabel("Hello Qt!");

label->show();

return app.exec();

}

然后qmake –project

qmake

make

ARM

在/usr/local/Trolltech/ Qt-4.6.3-arm 创建setenv.sh,编辑添加的内容为:

#!/bin/bash

QTDIR=/usr/local/Trolltech/Qt-4.6.3-arm

PATH=$QTDIR/bin:$PA TH

LD_LIBRARY_PA TH=$QTDIR/lib:/opt/ts/lib:$LD_LIBRARY_PATH

然后执行source setenv.sh。

在开发板上创建/opt/文件夹

将linux上/opt/ts拷贝到开发板的/opt/下,然后进入./ts/etc/ts.conf修改第二行,将#号和空格去掉,如图所示:

进入到/usr/local/Trolltech/Qt-4.6.3-arm/lib

通过命令cp XXXXXX -d /utuLinux2.6/s3c2440_recover/usr/local/Trolltech/Qt-4.6.3-arm/lib

将linux本机上的四个库文件及其相关的连接符号文件一起考到开发板的文件夹下。(-d 参数会同时修改链接符号文件指向)。

XXXXXX

libQtCore.so.4.6.3

libQtSql.so.4.6.3

libQtNetwork.so.4.6.3

libQtGui.so.4.6.3

实例:

cp libQtCore.so* -d/utuLinux2.6/s3c2440_recover/usr/local/Trolltech/Qt-4.6.3-arm/lib/

修改添加开发板/etc/profile

export LD_LIBRARY_PA TH=/lib:$LD_LIBRARY_PATH

export QTDIR=/usr/local/Trolltech/Qt-4.6.3-arm

export QPEDIR=$QTDIR

export T_ROOT=/opt/ts

export PA TH=$T_ROOT/bin:$PATH

export LD_LIBRARY_PA TH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/event0

export TSLIB_PLUGINDIR=$T_ROOT/lib/ts

export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf

export TSLIB_CALIBFILE=/etc/pointercal

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=Tslib:/dev/event0

export QWS_DISPLAY=LinuxFb:mmWidth45:mmHeight60:0

export QWS_SIZE=320x240

然后qmake –project

qmake

这里需要修改Makefile:

修改当前生成的Makefile

在19行的最后加上-lts

LIBS = $(SUBLIBS) -L/usr/local/Trolltech/Qt-4.6.3-arm/lib -lQtGui -L/opt/ts/lib -L/usr/local/Trolltech/Qt-4.6.3-arm/lib -lQtNetwork -lQtCore -lpthread –lts

进到开发板的lib库下面

cd/lib

ln -s libstdc\+\+.so.60.0.3libstdc\+\+.so.6

并且在开发板根目录下面创建/tmp/目录

make

执行可执行文件时要在后面加上–qws

FAQ:

1执行自己的qt程序之前,请先执行/opt/ts/bin/ts_calibrate校准触摸屏,不然自己的qt程序不能使用触摸屏,会提示:Could not read calibration: "/etc/pointercal"

2

qt程序在linux console模式下运行

Qt程序在linux Console模式下运行 原文链接:在x86非图形界面下运行QtEmbedded程序 众所周知,一般我们在桌面环境下可以使用qvfb这个工具作为运行QtEmbedded程序的模拟器环境,但我们今天不讲这些大家都知道的事情。 回顾一下QtEmbedded对系统以及硬件的要求,一般来说只有下面少少的几点: 1、 Linux内核+ framebuffer驱动+ socket支持 2、 /tmp可写 3、有合适的键盘和鼠标(触摸屏)驱动并做好与Qt的集成 4、合适的编译器和交叉编译工具链(toolchain) 那么聪明的同学已经想到了,为什么我们不能直接在桌面的linux系统中运行QtE程序呢?似乎QtE的要求我们的桌面系统一样可以满足亚。答案当然是肯定的。 一条一条来说的话, 1内核支持framebuffer和socket这一条大部分发行版默认的内核就可以; 2就不用说了;3在QtE的源码里自带了对普通桌面鼠标和键盘硬件的驱动;4对于X86系统,普通的gcc就可满足,一般linux发行版带的gcc版本也基本可以满足QtE编译的要求。 那么,怎么才能实现我们的想法呢?还是要一步一步按部就班来做。以笔者的Ubuntu 为例,介绍一下设置的具体步骤。 编译QtEmbedded 这一步编译和编译qvfb版本区别不大,只是不再需要configure的时候加-qvfb参 数,只用不加参数的configure足矣。 # tar -zxvf qt-em bedded-linux-opensource-src-4.5.1.tar.gz # cd qt-em bedded-linux-opensource-src-4.5.1 # ./configure -embedded x86 –qvfb // 我的编译情况是: ./confignre –prefix /work/Trolltech/QtEm bedded-4.5.1–no-o penssl # gmake # gmake install qt-em bedded 被安装在这个目录下/usr/local/Trolltech/QtEmbedded-4.5.1 设置环境变量: # vi ~/.bashrc 把下面的加上去 export QTEDIR=/usr/local/Trolltech/QtEm bedded-4.5.1 export PATH=/usr/local/Trolltech/QtEm bedded-4.5.1/bin:$PAT H export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEm bedded-4.5.1/lib:$LD_LIBRA RY_PATH

Ubuntu编译安装Linux内核过程(整理版)

Ubuntu编译Linux内核过程 一、首先解决Ubuntu代理上网的问题 1、这种方法要用到/etc/apt/文件夹下的apt.conf文件。如果您希望apt-get(而不是其他应用程序)一直使用http代理,您可以使用这种方式。 注意:某些情况下,系统安装过程中没有建立apt配置文件。下面的操作将视情况修改现有的配置文件或者新建配置文件。 sudo gedit /etc/apt/apt.conf在您的apt.conf文件中加入下面这行(根据你的实际情况替换yourproxyaddress和proxyport)。Acquire::http::Proxy "http://yourproxyaddress:proxyport";保存apt.conf文件。 如果代理服务器需要登录,那么可以在指定代理服务器地址的时候,用如下格式(根据情况把username,password, yourproxyaddress 和proxyport替换为相应内容): http_proxy=http://username:password@yourproxyaddress:proxyp ort 2、然后在新立得设置http代理,在系统--系统管理--新立得软件包管理器--设置--首选项--网络里也要设置http的代理 二、下载源代码和编译软件的准备 下载内核源代码:https://www.sodocs.net/doc/8216264753.html,/ 注意,点击2.6.39.3内核的F版,即完整版。

如果你懒得去网站点联接,运行下列命令: 代码: $cd ~ $wget https://www.sodocs.net/doc/8216264753.html,/pub/linux/kernel/v2.6/linux-2.6.39.3. tar.bz2 安装有关编译程序。安装make ,gcc, make-kpkg,运行menuconfig 等等和编译内核相关的工具。 安装不了,请检查/etc/apt/sources.list 文件。 安装所需工具包有关命令: 代码: $sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot 三、解压源代码 注意,网上很多教程上说应该解压到 /usr/src,纯属以讹传讹,linux掌门人linus说解压到任何目录上都可以。当然,linus的说法是正确的。先将压缩包复制到usr/src目录下,然后将压缩包解压到user/src目录下。 如果压缩包现在放在个人主目录的桌面上,则运行下列命令: 代码: $sudo cp Desktop/linux-2.6.39.3.tar.bz2 /usr/src

Linux-Ubuntu 下 Qt 4.7.1静态编译

Qt的静态编译是本文介绍的内容,相比较来说windows的Qt静态编译比较容易,相反对于linux编译网上的文章实践下来都有这样那样的错误,这里简要小结一下自己的编译成果。 一、实验环境 1Ubuntu 10.04 2qt-x11-opensource-4.7.1.tar.gz 二、前期准备 在安装好Ubuntu 10.04后默认是没有安装程序编译软件包的,所以我们首先是要配置ubuntu。 配置方法:(推荐全程root用户模式) 1、首先调整网络设置使得机器可以上网(具体做法因人而异,这边就忽略不计) 2、需要配置的安装包:输入命令: 3apt-get install build-essential libpcap0.8-dev libx11-dev libfreetype6-dev 4libavahi-gobject-dev libSM-dev libXrender-dev libfontconfig-dev libXext-dev 三、静态编译Qt 1、下载qt-x11-opensource-4.7.1.tar.gz 2、解压缩qt-x11-opensource-4.7.1.tar.gz 3、配置path 输入命令: 5export PATH="$PATH:/usr/local/Trolltech/Qt-4.7.1/bin" 4、进入qt解压目录,配置configure命令:./configure -static -nomake demos

-nomake examples -nomake tools -no-exceptions 5、分别输入“o”和“y”以后进入编译阶段 6make 7make install 慢慢等吧…… 四、静态编译Qt程序 1、建立文件夹,然后写程序文件XX.cpp 2、qmake -project 3、生成pro文件后在里面加入CONFIG += static 4、qmake 5、生成Makefile后在cxxflags的=后插入-static 6、make 小结:实现Ubuntu 下Qt4.7.1静态编译的内容介绍完了,希望本篇的静态编译读你有所帮助。 【编辑推荐】 8Qt中根据不同版本号使用不同源码 9解析Qt资源文件使用 10深度解析QT 介绍跨平台界面库 11Windows下Qt 静态编译连接 12浅谈Qt 静态编译 原文参考:https://www.sodocs.net/doc/8216264753.html,/symbian-270510.htm

Ubuntu下Android源码修改、编译及运行、launcher定制

环境 Linux 版本:Ubuntu 11.04 (可由10.10的版本进行升级)64位系统 GCC版本:gcc version 4.5.2 Java版本:java version "1.6.0_26" 下载android源码前注意: 1、保证Ubuntu系统中的容量在80G左右,以保证足够的空间来存放android源码以及编译后的相关文件。 2、保证Ubuntu系统进行Internet访问。 联网方法:采用拨号进行连接。相关操作步骤如下所示: 1、虚拟机→设置→硬件→网络适配器→网络连接→桥接 2、启动Ubuntu系统,打开终端(在普通用户下),输入相关命令如下: $ pppoeconf //打开后输入上网账号跟密码,确认保存 $ sudo pon dsl-provider //上网连接命令 经过这两个步骤后就可以进行上网了。 Android源码编译所依赖的tools 01.$ sudo apt-get update 02.$ sudo apt-get -y install git-core 03.$ sudo apt-get -y install gnupg 04.$ sudo apt-get -y install sun-java6-jdk flex 05.$ sudo apt-get -y install bison 06.$ sudo apt-get -y install gperf 07.$ sudo apt-get -y install libsdl-dev 08.$ sudo apt-get -y install libesd0-dev 09.$ sudo apt-get -y install libwxgtk2.6-dev 10.$ sudo apt-get -y install build-essential 11.$ sudo apt-get -y install zip 12.$ sudo apt-get -y install curl 13.$ sudo apt-get -y install libncurses5-dev 14.$ sudo apt-get -y install zlib1g-dev 15.$ sudo apt-get -y install valgrind 注意:(如果是32bit的系统的话,则要更改几个Android.mk文件) 01./external/clearsilver/cgi/Android.mk 02./external/clearsilver/java-jni/Android.mk 03./external/clearsilver/util/Android.mk 04./external/clearsilver/cs/Android.mk 用gedit打开,修改m64为m32即可 另外 将build/core/main.mk中的ifneq (64,$(findstring 64,$(build_arch)))修改为: ifneq (i686,$(findstring i686,$(build_arch)))

【IT专家】Qt程序发行Linux版,软件打包知识(patchelf 工具修改依赖库,确认 qmake

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Qt程序发行Linux版,软件打包知识(patchelf 工具修改依赖库,确 认qmake 2017/06/02 449 patchelf 工具可以修改已编译运行程序的依赖库位置和指定库链接器 ?patchelf --set-rpath ?patchelf --set-interpreter ?通过这个工具https://github/probonopd/linuxdeployqt如果自己编译不了,也可以下载现成的 ?https://github/probonopd/linuxdeployqt/releases ?运行./linuxdeployqt-2-x86_64.AppImage ShanbayDict 并为成功,生成的lib目录下的so文件很少。 ?运行./linuxdeployqt-2-x86_64.AppImage ShanbayDict -appimage 也未成功,但lib 生成了很多so文件 ?使用patchelf --set-rpath /opt/Qt-5.7-static/lib/:./lib ShanbayDict 修改rpath后,ShanbayDict可以独立运行了,连同lib一起拷贝到新安装的Ubuntu 16.04系统中,也能运行了。 ?ldd ShanbayDict 显示,rpath已经指向./lib目录 ?patchelf可以通过sudo apt installpatchelf 安装 ?2017年2月24日 ?Qt 5.8编译的Qt程序 ?设置环境变量,确认qmake -v 是自己使用的Qt版本,如果不是,解决办法是: ?export PATH=/home/lieefu/Qt5.8.0/5.8/gcc_64/bin:$PATH ?创建qml目录,把/home/lieefu/Qt5.8.0/5.8/gcc_64/qml 目录下用到的模块复制过来,我的app用到了三个QtQuick、QtQuick.2、QtMultimedia。 ?增加plugin中platforminputcontexts 包括libfcitxplatforminputcontextplugin.so文

如何安装Linux内核源代码

如何获取Linux内核源代码 下载Linux内核当然要去官方网站了,网站提供了两种文件下载,一种是完整的Linux 内核,另一种是内核增量补丁,它们都是tar归档压缩包。除非你有特别的原因需要使用旧版本的Linux内核,否则你应该总是升级到最新版本。 使用Git 由Linus领头的内核开发队伍从几年前就开始使用Git版本控制系统管理Linux内核了(参考阅读:什么是Git?),而Git项目本身也是由Linus创建的,它和传统的CVS不一样,Git是分布式的,因此它的用法和工作流程很多开发人员可能会感到很陌生,但我强烈建议使用Git下载和管理Linux内核源代码。 你可以使用下面的Git命令获取Linus内核代码树的最新“推送”版本: $ git clone git://https://www.sodocs.net/doc/8216264753.html,/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 然后使用下面的命令将你的代码树与Linus的代码树最新状态同步: $ git pull 安装内核源代码 内核包有GNU zip(gzip)和bzip2格式。Bzip2是默认和首选格式,因为它的压缩比通常比gzip更好,bzip2格式的Linux内核包一般采用linux-x.y.z.tar.bz2形式的文件名,这里的x.y.z是内核源代码的具体版本号,下载到源代码包后,解压和抽取就很简单了,如果你下载的是bzip2包,运行: $ tar xvjf linux-x.y.z.tar.bz2 如果你下载的是gzip包,则运行: $ tar xvzf linux-x.y.z.tar.gz 无论执行上面哪一个命令,最后都会将源代码解压和抽取到linux-x.y.z目录下,如果你使用Git下载和管理内核源代码,你不需要下载tar包,只需要运行git clone命令,它就会自动下载和解压。 内核源代码通常都会安装到/usr/src/linux下,但在开发的时候最好不要使用这个源代码树,因为针对你的C库编译的内核版本通常也链接到这里的。 应用补丁

【IT专家】《Linux与Qt程序设计》知识框架

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 《Linux与Qt程序设计》知识框架 本文主要是通过一本书来大致了解Qt开发的框架,不对具体内容做详细分析。?1.首先弄清楚概念:定义- 以自己的话理解是什么- 实现的是什么功能- 用在哪些地方 ?2.前面认识到的知识点的特点- 代码实现- 工程代码分析 ?第一部分Linux基础知识第二部分Qt程序基础第5章OtCreator下载与安装5.1 QtCreator下载5.1.1 使用软件中心下载QtCreator5.1.2 访问Qt网站下载相关资源5.2 第一个Qt程序5.3 QtCreator介绍5.3.1 QtCreator界面介绍5.3.2 编译、调试、发布设置5.4 QtDesigner介绍第6章Qt基础6.1 Qt概述与特性6.1.1 Qt简介6.1.2 Qt特性 ?Qt SDK包括:Qt库、Qt Creator IDE、Qt工具:Qt Designer、Qt Linguist(消除国际化流程障碍)、Qt Assistant. ?6.2 Qt与Xll的关系6.2.1 什么是X116.2.2 Qt与Xl16.3 Qt与KDE的关系6.3.1 KDE简介6.3.2 Qt与KDE6.4 Qt库和组件 ?Qt SDK中主要包括类库、开发工具、平台相关支持、授权许可等。 ?其中类库包含了Qt的所有对外发布的功能组件: ?1)Core: Qt4的基本模块,定义了其他模块使用的Qt核心的非GUI类,所有其他模块都依赖于该模块。 ?2)GUI: 定义了图形用户界面类 ?3)WebKit:提供了一个在Qt中使用Web Browser的渲染与解析引擎。 ?4)Graphic View:提供的是一种Qt Model-View编程模式,既可以管理大数量的定制2D graphical items,又可以与它们交互,由于一个视图窗口可以把这些项绘制出来,并支持旋转与缩放。 ?5)Scripting:提供了对脚本(如:Java、Python、Perl、Ruby)的支持。 ?6)OpenGL ?7)XML: 定义了处理XML(eXtensible Markup Language)语言的类。

在Ubuntu上编译android

在Ubuntu7.10上编译android 1 概述 上个星期看到android开放源代码的消息,虽然觉得Google的这个动作会对业界产生很大影响,但没有时间仔细看,只浏览了Project layout。今天上午一个网友在mail中说已经编译、运行过android。我趁着中午休息时间,在一个Ubuntu7.10的虚拟机上编译、运行了一下。 我在这个虚拟机上编译过openmoko、poky。相对于这两个使用OpenEmbedded的平台,android的编译要简单一些,快一些。我在编译openmoko和poky时,将所有下载包都保存在一个目录中,将编译目录的sources子目录指向这个目录。这样做,一方面即使以后有些链接失效,也还可以编起来(其实编译时都不需要连接外网);另一方面在重新编译时,不用重新下载,可以加快编译速度。即使这样,完全编译一次poky也要一个晚上。编译android时,下载用了1个小时,编译也只需要1个小时。 2 编译中的两个小问题 2.1 python和JDK Google网站对编译过程的介绍还是很清晰的。不过在介绍其它软件包时,都给出了apt-get命令,却单独给出了python和JDK的链接地址,容易对读者产生误导,以为要手工安装这两个软件。其实这两个软件也应该通过apt-get安装。特别是python,如果从源代码安装,可能因为依赖其它软件,导致一些组件编译失败,影响android的编译。而且python 2.6的源代码包没有提供make uninstall,卸载也比较麻烦。其实我们只需要一个apt-get命令,就可以安装所有依赖的软件。 2.2 "fatal: git 1.5.4 or later required" 在Ubuntu7.10上执行repo init时,会出现"fatal: git 1.5.4 or later required"的错误提示。在Ubuntu8.04上编译没有这个问题。下面的流程里会介绍怎样解决这个问题。 3 在Ubuntu7.10上的编译流程

QT程序,如何在ARM板上运行

QT程序,如何在ARM板上运行写这篇文章,主要是为了说明怎么让PC机下编译好的QT程序移植到板子上运行。在说明之前,我们要了解一个事情,就是QT。QT是一个跨平台的开发工具,具有很好的移植性,它所依赖的库文件在PC机上和在ARM上是不一样的,那么我要怎么做呢? 很简单,就是重新编译已经写好的QT程序。为什么需要重新编译,第一,ARM的CPU的指令集和PC的CPU指令集肯定是不一样的,也就是需要交叉编译。第二:由于QT所依赖的库文件不一样,在不同的指令集得CPU里,库是需要移植的。我这里假设ARM板的文件系统里已经移植好了QT相关的库文件(具体怎么移植,我会再写一篇文章),移植好后,在开发板上就可以移植QT程序了。 那么,具体我要怎么编译呢?我们都知道,编译好的QT的程序,一般会有几个.CPP\.h文件,这么多的文件我们要怎么样编译。首先,我们需要安装QT版本的库,一定要注意,这个库文件一定和开发板上的是同一个库。我们假设这个库名字叫qtembed450-arm。以下步骤一定要注意: 1.安装目录一定要在“/usr/local/”下; 2.安装成功后,这步非常关键,一定要设置环境变量,而且,我们要设置三个环境变量,这样做有三个目的:①可以在任何路径下用库里的命令②编译时候可以指定编译规则为 arm-linux-g++③编译时候可以指定到所需要的库文件。那么安装后,输入一下命令:gedit /root/.bashrc.这个命令执行后就进入到设置环境变量的地方,我们要加入以下三个环境变量的设置: export PATH=$PATH:/usr/local/qtembed450-arm/bin export LD_LIBRARY_PATH=$LD_LTBRARY_PATH:/usr/local/qtembed450-arm/lib export QMAKESPEC=/usr/local/qtembed450-arm/mkspecs/default 以上设置非常的重要,非常的关键。呵呵,先照着设置,具体原因我会细谈。注意,我编译用的很重要的qmake-arm 命令,就在/usr/local/qtembed450-arm/bin下,可以打开看看哦!环境变量设置好后,用which qmake-arm 命令来确认下是否成功,呵呵。 3.准备工作做到这里,算是进行一半了,哎,真累啊!还要接着写呢。接下来我们要把我们的编译好的QT程序的文件夹打开,把里面的 .CPP/.h文件拷贝出来,新建立一个文件夹; 4.把以上的文件里的.cpp .h文件复制后新建立一个文件夹。 5.新文件夹建立后,在linux终端中进入到该文件夹所在目录下,执行这个命令:qmake-arm -project命令,千万注意,-project 和arm之间一定要有空格啊!该命令执行后,会生成一个.pro文件,紧接着呢,执行qmake-arm命令,该命令执行后呢,会生成一个Makefile文件,这步很关键哦,没有这步就不会有Makefile文件,一般在这步会出现很多错误,就是库没有发现之类,这个时候,一定要检查前面的步骤,仔细检查看是否是错误。我们这个时候打开Makefile文件看一下,会发现,里面的编译已经变成 arm-linux-g++。这个时候,就踏实,接下来怎么办?还用问吗,直接make下就好了,哈哈,简单吧!看到上面的qtmyjpg文件了吗?这个是可以在开发板上运行的哦!接下来

在ubuntu 10.10(2.6.35.22) 编译安装linux-2.6.35.13内核

在ubuntu 10.10(2.6.35.22) 编译安装linux-2.6.35.13内核 第一步:准备工作 打开终端获得root权限:sudo su 然后安装编译内核时需要的工具: apt-get install build-essential kernel-package libncurses5-dev libqt3-headers build-essential (基本的编程库(gcc, make等) kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具) libncurses5-dev (make menuconfig要调用的) libqt3-headers (make xconfig要调用的) 其他工具在升级过程中可以按提示安装 第二步:到https://www.sodocs.net/doc/8216264753.html,下载内核源代码linux-2.6.35.13.tar.gz 假设下载在root目录(具体路径个人喜好),然后解压到/usr/src/linux-2.6.35.13目录里 tar zxvf /root/linux-2.6.35.13.tar.gz -C /usr/src 解压后会在/usr/src生成新文件夹linux-2.6.35.13 第三步:配置 把正在使用中的内核配置文件/usr/src/linux-headers-2.6.35-22-generic/.config 拷到/usr/src/linux-2.6.35.13目录下 cp /usr/src/linux-headers-2.6.35-22-generic/.config /usr/src/linux-2.6.35.13 执行: cd /usr/src/linux-2.6.35.13 make menuconfig 终端会弹出一个配置界面,注意主菜单最后有两项: Load an Alternate Configuration File Save an Alternate Configuration File 先选Load an Alternate Configuration File,意思是利用当前的内核配置详单来设置将要编译的内核,然后选Save an Alternate Configuration File,最后退出配置界面。 第四步:开如编译安装新内核 //执行:sudo make mrproper (清除以前曾经编译过的旧文件,如果你是第一次编译,可不执行) //上面这个操作会把前面拷贝的.config干掉,所以。。。你懂的。。。 执行:sudo make(编译,可以加-j4,如果你CPU是双核心,够牛的话,因为可以提高速度) 然后:sudo make install(安装内核文件到/boot目录,安装过程会自动修改GRUB启动菜单) 再:sudo make modules(编译内核需要的模块) 再:sudo make modules_install(安装模块到/lib/modules目录) 最后创建initrd文件: mkinitramfs -o /boot/initrd.img-2.6.35.13

01.linux下搭建opencv并在qt中使用

linux下搭建opencv并在qt中使用 作者:vmezr 由于最近要着手做pcduino上的视频聊天的项目,从未接触过pcduino,经过讨论决定使用qt来实现。其实qt和opencv 我都没有接触过,也打算趁机学习一下。言归正传,首先得搭建好需要的环境,第一步是安装配置opencv,然后在qt中使用opencv的库。 (opencv的安装方法部分参考雷雨同鞋哒~) 首先,在官网https://www.sodocs.net/doc/8216264753.html,/中下载opencv原码,选择linux版本进行下载。 以opencv2.4.8为例:(我用的是opencv2.4.13) 1.将压缩包解压到/usr/local/ 2.直接使用sudo apt-get install cmake下载并安装cmake 3.为了方便后续摄像头捕捉等功能还需要下载opencv依赖的一些包: apt-cache search opencv 使用此命令可以直接查到需要下载的依赖包 leo@leo-virtual-machine:/usr/local/opencv/release$ apt-cache search opencv libcv-dev - Translation package for libcv-dev libcv2.3 - computer vision library - libcv* translation package libcvaux-dev - Translation package for libcvaux-dev libcvaux2.3 - computer vision library - libcvaux translation package libhighgui-dev - Translation package for libhighgui-dev libhighgui2.3 - computer vision library - libhighgui translation package libopencv-calib3d-dev - development files for libopencv-calib3d libopencv-calib3d2.3 - computer vision Camera Calibration library

Android_4.2_源码下载和编译环境安装及Android_4.2_源码编译

Android 4.2源码的下载和编译环境的安装及源码的编译Google于2012.11.14发布了Android4.2的源码,下面把本人在ubuntu10.04 的64位 系统上下载源码,和编译源码做个记录备份,也供有需要的人参考,若是在下载编译安装Android源代码遇到问题,可加QQ群交流: 217706590,难免有错,敬请见谅,还忘勿吝啬指出。 源代码下载、编译环境安装、源代码编译和运行模拟器的可能出现的一些错误在本文最后一章节,若出现类似错误,可以参考。 1、源码的下载 源代码的下载,首先需要安装以下软件:curl 和git-core 1.1安装curl: 在终端中执行:sudo apt-get install curl 1.2安装git-core 1.2.1在用户目录下新建bin文件 在终端中执行:mkdir ~/bin 将~/bin添加环境变量,作用是:要将git软件下载安装在此目录,在别的目录运行可能会找不到此软件,所以要添加到环境变量中 在终端中执行:PA TH=~/bin:$PATH 1.2.2安装git-core 在终端中执行:curl https://https://www.sodocs.net/doc/8216264753.html,/dl/googlesource/git-repo/repo§> ~/bin/repo 给repo执行权限:chmod a+x ~/bin/repo 1.3 下载源代码 1.3.1进入要源代码将要保存的目录 如我的源代码保存在:、/opt/android/src 在终端中执行:cd /opt/android/src 进入到src目录中 1.3.2 获取repo最新的配置 repo init -u https://https://www.sodocs.net/doc/8216264753.html,/platform/manifest§ 若是执行错误则用以下命令: ~/bin/repo init -u https://https://www.sodocs.net/doc/8216264753.html,/platform/manifest§ 1.3.3 下载源代码 对于下载不同版本的android,指定一个manifest分支(即只指明android对应的版

Linux下用QT进行软件开发的流程

Linux下用QT进行软件开发的流程 QT 2009-11-20 17:09:49 阅读69 评论0 字号:大中小 1.用QT Designer开发非GUI的C/C++软件 1)建立工程:双击上图中的C++ Project; 2)新建源程序并添加到工程中:新建hello.cpp后会自动加入到工程, hello.cpp如下: #include using namespace std; int main() { cout<<"Hello! this program is created by QT Designer !"<

Ubuntu下编译安装FFmpeg

一个简单的ns2实验全过程 实验名称:比较tcp和udp的丢包行为 试验目的: 1. 熟练用ns2做网络仿真试验的整个流程; 2. 练习写tcl脚本,了解怎么应用http和rtp; 3. 练习用awk处理trace数据,了解怎么计算丢包率; 4. 练习用gnuplot绘制曲线图,熟练gnuplot的使用。 实验步骤: 1。确定网络拓扑。 一个简单的三个节点的拓扑,两个运行cbr(const-bitrate)应用的发送结点,一个接收结点。一条链路使用tcp链接,一条链路使用udp连接。如图。 2。写tcl脚本。 # jiqing 2007-6-5 # this script is to compare the loss rates of http and rtp. set ns [new Simulator] #open a nam trace file set nf [open out.nam w] $ns namtrace-all $nf #open a trace file set tf [open out.tr w] $ns trace-all $tf #finish procedure proc finish {} { global ns nf tf $ns flush-trace close $nf close $tf exec ./nam out.nam & exit 0

} #create nodes set node(http) [$ns node] set node(rtp) [$ns node] set node(recv) [$ns node] #create links $ns duplex-link $node(http) $node(recv) 0.9Mb 10ms DropTail $ns duplex-link $node(rtp) $node(recv) 0.9Mb 10ms DropTail #set queue size $ns queue-limit $node(http) $node(recv) 10 $ns queue-limit $node(rtp) $node(recv) 10 #relayout nodes $ns duplex-link-op $node(http) $node(recv) orient right-down $ns duplex-link-op $node(rtp) $node(recv) orient right-up #set colors $ns color 1 blue $ns color 2 red #set a tcp connection set tcp [new Agent/TCP] $ns attach-agent $node(http) $tcp set sink [new Agent/TCPSink] $ns attach-agent $node(recv) $sink $ns connect $tcp $sink $tcp set fid_ 1 #set a cbr above tcp connection set cbr(http) [new Application/Traffic/CBR] $cbr(http) attach-agent $tcp $cbr(http) set type_ CBR $cbr(http) set packet_size_ 1000 $cbr(http) set rate_ 1mb $cbr(http) set random_ false #set a rtp connection set rtp [new Agent/UDP] $ns attach-agent $node(rtp) $rtp set null [new Agent/Null] $ns attach-agent $node(recv) $null

32位Ubuntu 11.10下android2.3.7源码下载与编译小结

32位Ubuntu 11.10下android2.3.7源码下载与编译小结 1、我是在vmware下安装ubuntu 11.10的,这个网上资料很多,不多说了。我给ubuntu分了25g硬盘和1g内存。 2、请参照https://www.sodocs.net/doc/8216264753.html,/source。 初始化编译环境 检查一下包是否安装: Python 2.4-2.7 Git 1.5.4 或更高版本 没有话可以sudo apt-get install..安装一下 JDK 6 因为是编译android2.3以上,如果编译2.2以下需要JDK5 安装JDK6: $ sudo add-apt-repository"deb https://www.sodocs.net/doc/8216264753.html,/ lucid partner" $ sudo apt-get update $ sudo apt-get install sun-java6-jdk 如果下载速度不行,可以先把ubuntu的更新源改成网易的源,可参考:http://bolg.malu.me/html/2010/279.html。 其他需要安装的包: 我安装了如下包:官网上那是64位需要安装的包,我是32位的有些不一样。 $ sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev x11proto-core-dev libx11-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils 3、下面开始下载源码 首先安装repo(是一个便于git管理的工具) $ mkdir~/bin $ PATH=~/bin:$PATH $ curl https://https://www.sodocs.net/doc/8216264753.html,/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x~/bin/repo 初始化repo client $ mkdir android2.3.7 $ cd android2.3.7 初始化repo,我是使用的下面的地址,使用官网地址时出现了网络错误 $ repo init-u https://www.sodocs.net/doc/8216264753.html,/platform/manifest.git -b android-2.3.7_r1 按照提示输入用户名和邮箱。 接着

Linux下QT程序开发实训个人总结

实训报告 实训名称:基于Linux下QT程序开发应用姓名: 院系: 专业班级: 学号: 指导老师:

实训总结 首先在技能方面,我们在这周实训中运用了 Linux开发环境搭建,安装了虚拟机VMware10,再用了QT平台的界面开发安装了Qt Creator,这个也仅仅是界面品台的搭建工作。 在6月12号这一天中我们完成 Linux开发环境搭建工作和和中文输入法,6月14日我们对QT平台的界面开发安装了Qt Creator 和QTCreator下C++应用开发,简单测试了RAM环境下开发和Windows环境下的开发;6月15日我们主要是开始了界面的开发工作,完成界面与开发板和传感器的互联工作。 在这次实训中,虽然我们在这学期学了Linux课程,但是这次的VMware虚拟机的版本不同,它采用的是全英文的系统,这个对我这个英语不好的人来说也算是一个硬伤,但好在我们小组敬芳芳的英语不错,简易的错误她还是能够翻译出来。当然安装过程中问题还是很多的。 其中有一些基础问题,在安装过程中没有管理D盘内的存储空间,导致在安装过程中由于磁盘空间大小不足的问题,无法进行正常安装;还有就是在15日界面程序开发中,输入程序时将单词打错,漏掉单词的问题。正是这些小问题,一直阻碍实验的进程。 还有一些技术性的问题,在14日root权限登录过程中找不到root登录界面,随后只有求助老师才知道是没有关闭自动登录;安装g++失败,询问老师才知道,需要将命令“sudo apt-get install linux-g++”修改为“sudo apt-get install g++”。15日中Qt编

Ubuntu下编译Android源码全过程

Ubuntu下编译Android源码全过程(转) 源码, 编译, Ubuntu, Android 一、获取Android源代码 Git是LinuxTorvalds(Linux之父)为了帮助管理Linux内核开发而开发的一个开放源码的分布式版本控制软件,它不同于Subversion、CVS这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓库(Repository),许多个工作目录(WorkingCopy),而在Git这样的分布式版本控制系统中(其他主要的分布式版本控制系统还有BitKeeper、Mercurial、GNUArch、Bazaar、Darcs、SVK、Monotone等),每一个工作目录都包含一个完整仓库,它们支持离线工作,本地提交可以稍后提交到服务器上。 因为Android是由Kernel、Dalvik、Bionic、Prebuilt、build等多个项目组成,如果我们分别使用Git来逐个获取显得很麻烦,所以Android项目编写了一个名为Repo的Python 的脚本来统一管理这些项目的仓库,使得项目的获取更加简单。 在Ubuntu 8.04上安装Git只需要设定正确的更新源,然后使用apt-get就可以了,apt-get 是一条Linux命令,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或 操作系统。 apt-get命令一般需要root权限执行,所以一般跟着sudo命令。 sudo apt-get install git-core curl 这条命令会从互联网的软件仓库中安装git-core和curl。 其中curl是一个利用URL语法在命令行方式下工作的文件传输工具,它支持很多协议,包括FTP、FTPS、HTTP、HTTPS、TELENT等,我们需要安装它从网络上获取Repo脚本文件。 curl https://www.sodocs.net/doc/8216264753.html,/repo >~/bin/repo 这句命令会下载repo脚本文件到当前主目录的/bin目录下,并保存在文件repo中。 最后我们需要给repo文件可执行权限

相关主题