Linux-Ubuntu 下 Qt 4.7.1静态编译
linux内核编译教程

linux内核编译教程Linux内核是开源操作系统Linux的核心部分,负责管理计算机的硬件资源和提供系统调用等基本功能。
编译Linux内核是根据自己的需求定制Linux系统的一个重要步骤。
本文将介绍如何编译Linux内核。
首先,要开始编译Linux内核,需要下载最新的内核源代码。
可以在Linux官网的下载页面找到相应的内核版本。
将源代码下载到本地后,解压缩到一个合适的位置。
接下来,需要安装一些必要的依赖包。
不同的Linux发行版可能有不同的依赖包名称,可以通过包管理器进行安装。
例如,对于Debian/Ubuntu系统,可以使用apt-get命令安装依赖包。
常见的依赖包包括gcc编译器、make工具、flex和bison等。
在安装完依赖包之后,进入解压缩后的内核源码目录。
可以通过cd命令切换到该目录。
在目录中可以找到一个名为.config 的文件,这是内核的配置文件。
可以通过复制现有的配置文件或者使用make menuconfig等命令进行配置。
配置完成后,可以开始编译内核了。
在内核源码目录中运行make命令,编译过程可能需要一些时间。
可以使用make命令的参数来设置编译的选项,例如使用-j参数指定并行编译的进程数,加快编译速度。
编译完成后,可以使用make modules_install命令安装内核模块。
然后,使用make install命令安装编译好的内核。
这些命令可能需要root权限才能执行。
安装完成后,需要更新系统的引导程序以启动新编译的内核。
具体的操作步骤可以根据不同的引导程序进行设置。
一般来说,需要编辑/boot/grub/grub.cfg文件,添加新内核的引导项。
最后,重启计算机,选择新编译的内核启动。
如果一切正常,系统将会以新内核启动。
在编译Linux内核的过程中,可能会遇到各种问题。
可以通过查找相关文档、咨询论坛或者向开发者社区寻求帮助来解决问题。
总之,编译Linux内核是一个复杂的过程,但通过理解以上步骤和不断实践,可以逐渐掌握这一技能,并根据自己的需求定制出适合的Linux系统。
Ubuntu下嵌入式Qt开发环境配置全攻略

Ubuntu下嵌入式Qt开发环境配置全攻略本文以友善之臂的Mini6410嵌入式开发板为目标板,介绍ubuntu 12.04系统下,配置嵌入式Qt开发工具的过程。
本文中介绍的工具、大部分步骤和脚本来自开发板附带资料光盘,但其默认配置环境为老旧的Fedora 9.0,在ubuntu中配置过程已需要修正。
一、背景众所周知Qt是一个跨平台的开发工具,与本文相关的分支有3个,分别是Linux下的Qt桌面版(基于X Window),嵌入式桌面环境Qtopia(Qt Extended)和嵌入式基础类库Qt Embedded。
嵌入式桌面版拥有集成开发工具Qt Creator,方便进行Qt 程序的设计,默认配置用于开发桌面程序,进行交叉编译设置(有时间待后文详述)后,可以直接编译嵌入式程序。
Qt Embedded也称Qt/E,是运行于嵌入式Linux的Qt基础类库,目前最高版本为4.8(不确定)。
它的图形界面直接工作于Frame Buffer 上,绕过了窗口管理系统,具有较高的效率,适于嵌入式环境。
Qtopia是一个嵌入式桌面环境,以Qt Embedded(在某些版本中称Qtopia Core)为基础,在后期改名为Qt Extended。
它提拥有一个桌面,并供了手机/PDA中常用的基本功能软件(如电话本等等),在4.4.3后官方停止开发(或改由开源社区维护)。
不同的开发目标应当选择不同的开发工具和环境,如果读者不开发桌面程序,也不需要Qt Creator(自己写makefile),可以不用安装桌面版,但装上对后续配置还是有一定方便作用的。
对嵌入式开发者来说,如果仅仅开发单独的图形界面程序,不需要嵌入式桌面的话,只使用Qt/E即可,没必要使用过时的Qtopia。
友善之臂开发板默认的Qtopia环境是2.2,已经与4.x的Qt/E库不兼容,除了演示自带程序外,对开发而言几乎不堪用。
开发板还提供了Qt Extended 4.4.3,但这个环境提供的是一个诺基亚功能机的界面,基本上也只能供学习研究使用了。
Linux 下编译、安装、配置 QT

3、这就是本文用的方法,就是下载源码包,自己编译安装,最为麻烦,但是本来就是学习的,况且现在只能下载到源码包,那就先学习这种方法把。
软件下载QT有好几个下载网站,这里汇总介绍,自从诺基亚公司放弃Meego、遣散Qt开发团队以后,Qt商业版本的网站移到了,而开源版本则放到了 :1、首先是诺基亚的官方网站/这个是不太方便的,想快速下载的接着看后面的。
此网站需要填写用户名和邮箱地址,下载地址会发送到邮件里,我就把我收到的地址贴出来吧。
下面是邮件中的地址汇总。
这里面的linux源码是commercial版本。
Qt 4.8.4 for embedded Linux/developer/download/qt-everywhere-commercial-sr c-4.8.4.tar.gzInstalling Qt for embedded Linux/doc/qt-4.8/qt-embedded-install.htmlQt Commercial Charts 1.1.0/developer/download_charts/qt-commercial-charts-src-1.1.0.tar.gzQt 5.0.0 Sources/developer/download_50/qt-everywhere-commerci al-src-5.0.0.tar.gzQt 4.8.4 for Windows (Src and VS2008 32bit Binary)/developer/download/qt-win-commercial-4.8.4-vs2 008.exeQt Visual Studio Addin 1.1.11 for Qt4 (Binary)/developer/download/qt-vs-addin-1.1.11.exeQt 4.8.4 for Windows (Src and VS2010 32bit Binary)/developer/download/qt-win-commercial-4.8.4-vs2 010.exeQt 4.8.4 for Windows (Src and MinGW 32bit Binary)/developer/download/qt-win-commercial-4.8.4-min gw.exeQt Creator 2.6.1 for Windows (32bit Binary)/developer/download_creator/qt-creator-win-comm ercial-2.6.1.exeQt 4.8.4 for Windows (Src and VS2010 64bit Binary)/developer/download/qt-win-commercial-4.8.4-vs2 010-64bit.exeQt Commercial Charts 1.1.0/developer/download_charts/qt-commercial-charts-src-1.1.0.zipQt 5.0.0 Sources/developer/download_50/qt-everywhere-commerci al-src-5.0.0.zipQt 5.0.0 Offline SDK for Windows (32-bit Binary)/developer/download_50/qt-windows-commercial-5.0.0-msvc2010_32-x86-offline.exeQt Visual Studio Addin 1.2.0 for Qt5 (Binary)/developer/download_50/qt-vs-addin-1.2.0.exe2、QT-project网站下载/downloads这个网站就直接而且清晰多了,分类很清楚,如下图所示。
静态和动态编译QT

这时编译同样得到一个非常大的可执行程序(我写的这个贪吃蛇一共500多行,生成的exe有8M)。用AspPack压缩一下。就可以发给用户了(这时是2.6M)。
quote: “这样编译出来的程序比较大,可以先用strip命令去掉程序里面一些无用信息后,用ASPack或者UPX之类的压缩加壳软件压缩一下,两者的压缩率基本都达到30%多一点,压缩效果还是很明显的。”
删除其中的”-mthreads”
quote:
一般只有用到threads的时候才用到mingwm10.dll,我们通常遇到的”缺少 mingwm10.dll”问题,可以在程序qmake生成makefile.release文件后删除”-mthreads”参数即可,一般在 “LFLAGS”后面。当然,这只是临时解决方案,每次都要手动修改,也可以在编译QT前先修改qmake.h,不过不推荐这种方法。其实, mingwm10.dll也就十多K,每次发布程序时一起打包也无所谓。
这个过程需要1-2个小时。QT目录会变成1.8G左右。注:mingw32-make和make是一样的。
如果用VC2005平台,在编译Qt的时候,configure.exe -static -platform win32-msvc2005
然后nmake sub-src或者nmake release sub-src完成静态编译。
5 解决MinGW的mingwm10.dll依赖问题
在Makefile.release里找到:
LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -static -Wl,-s -Wl -mthreads -Wl, -subsystem,windows
qt静态编译程序

qt静态编译程序
QT静态编译程序是指将QT程序编译成静态链接的可执行文件,该文件包含了所有依赖的库和资源,可以在没有QT运行
时库的环境中运行。
下面是一个简单的步骤来静态编译QT程序:
1. 准备编译环境:首先确保在系统中安装了所需的编译工具链(如GCC、MSVC等)和QT库的源代码。
2. 配置QT源代码:在QT源代码的根目录中,执行configure
命令来进行配置。
例如,对于Linux系统,可以执行如下命令: ./configure -static -prefix /path/to/qt/installation -release
这将配置QT使其支持静态编译,并指定安装目录和编译模式。
3. 编译QT库:执行make命令来编译QT库。
这个过程可能
会比较耗时,取决于系统的性能。
4. 安装QT库:执行make install命令来安装编译好的QT库到指定的安装目录。
5. 编译QT程序:使用静态链接方式编译QT程序。
在项目
的.pro文件中,添加如下配置:
CONFIG += static
这将告诉QT编译器使用静态链接方式。
6. 进行编译:使用qmake生成Makefile,然后执行make命令来进行编译。
7. 最终结果:编译完成后,将生成的可执行文件即为静态编译的QT程序。
可以将该文件复制到其他没有QT运行时库的环境中运行。
需要注意的是,静态编译会增加编译和链接的时间,并且生成的可执行文件可能会比较大。
此外,某些第三方库可能无法静态链接,需要根据情况进行调整和处理。
qt编译错误汇总

qt编译错误汇总0.预备知识:编译-运行一个c/c++程序时,编译器只默认的去连接c 库,而很多的库不是标准库1.linux下#inlude 命令默认头文件搜索路径为/usr/include,qt编程要用到的库qapplication库在usr/lib/qt-3.1/include下所以必须要用I增加路径。
如g++ -hello hello.cpp –I/usr/lib/qt-3.1/include 。
-I表示除了收索标准库,还要收索指定的额外头文件路径。
2.linux下的库,动态库为.so文件静态库为.a文件,编译运行时系统默认搜索的库为/usr/lib和/lib库。
linux下C库在/lib/libc.so.6路径下。
3.编译qt程序时要加上g++ -lqt …. lib库(相当于函数库集);-I:表示头文件额外搜索路径-L:表示要额外lib库搜索路径。
-l:表示表示指定具体的要连接(用到)的库(–lqt表示连接qt库)(qt不在默认lib库路径下,而在/usr/lib/qt-3.1/lib下,所以必须额外指定)4.为了简化编译时的指定路径和库的麻烦,可以设置环境变量:CPLUS_INCLUDE_PA TH:设置头文件搜索路径。
例如:export CPLUS_INCLUDE_PA TH=/usr/lib/qt-3.1/include //LD_LIBRARY_PA TH:设置动态库搜索路径。
例如:export LD_LIBRARY_PA TH =/usr/lib/qt-3.1/lib //注意qt比较特殊直接用LIBRARY_PAHT;在终端下输入env 和set命令可以显示环境变量。
5.qt下编译可用简便方法运行qmake –project 产生一个pro工程文件。
运行qmake 产生Makefile运行make 产生可执行程序6.查找一个文件用命令:which qmake7. qwidget.h是可视化窗口类。
Qt4.7移植

1.移植tslib1.4.11.编译安装./autogen.sh./configure --host=arm-linux -disable-hp3600 --disable-arctic2 --disable-mk712 --disable-collie --disable-corgi --disable-ucb1x00 --disable-linear-h2200 --with-gnu-ld --prefix=/home/lengyuegg/tool/tslib ac_cv_func_malloc_0_nonnull=yesmakemake install2.修改tslib文件/home/lengyuegg/tool/tslib/etc/ts.conf去掉下面一行前的注释module_raw input3.下载到开发板把第一步生成的tslib整个文件下载到开发板随便放到开发板的某个目录下比如放到/home/lengyuegg/tslib4.验证cd /home/lengyuegg/tslib/bin./ts_calibrate2.移植Qt4.7.31.安装arm-linux-gcctar zxvf arm-linux-gcc-4.3.2.tgz把目录下的bin所在的路径加到环境变量里2.编译安装Qt./configure -embedded arm -release -opensource -silent -qt-libpng -qt-libjpeg -qt-libmng -qt-libtiff -no-multimedia -make libs -nomake tools -nomake examples -nomake docs -make demos -qt-kbd-linuxinput -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-qt3support -no-nis -no-cups -no-iconv -no-dbus -no-openssl -fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -svg -no-webkit -no-3dnow -no-sse -no-sse2 -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -no-glib -prefix /home/lengyuegg/Qt/Qt4.7.3-qt-mouse-tslib -I /home/lengyuegg/tool/tslib/include-L /home/lengyuegg/tool/tslib/libType '3' to view the GNU General Public License version 3.Type 'L' to view the Lesser GNU General Public License version 2.1.Type 'yes' to accept this license offer.Type 'no' to decline this license offer.yes生成Makefilemake (2个小时)make install3.字体设置复制wqy-zenhei.ttc到/home/lengyuegg/Qt/Qt4.7.3/lib/fonts目录下,这样中文就可显示正常了。
qt静态编译程序

qt静态编译程序Qt静态编译程序是一种将Qt库和依赖项编译到可执行文件中的技术。
这种方法可以使程序更加可移植和独立,减少对外部依赖的需求。
静态编译的主要好处之一是不需要安装Qt库或其他依赖库。
这意味着用户可以轻松地在不同的系统上运行应用程序,而无需担心缺少必要的库文件。
此外,可执行文件的大小相对较小,不仅节省了存储空间,还可以加快启动时间。
静态编译也有一些潜在的挑战和注意事项。
首先,静态编译会增加构建和编译的时间,因为所有依赖库都需要在编译过程中链接到可执行文件中。
其次,如果Qt库或其他依赖库发生更新或修补程序,您可能需要重新编译您的应用程序。
因此,在选择静态编译时,需确保将来不会轻易地更换或更新依赖库。
为了成功地进行静态编译,必须确保正确配置编译环境。
您需要正确安装和配置构建工具链、Qt库和其他所需的依赖项。
在编译过程中,可能会遇到一些错误和警告。
您需要仔细查看这些错误并了解如何解决它们。
一个好的实践是在开始静态编译之前先进行动态编译。
这将确保您的应用程序在动态链接环境中正常工作,并确保没有其他易变的环境因素导致问题。
然后,您可以尝试将动态编译得到的可执行文件进行静态编译,以获得更大的可移植性和独立性。
总而言之,Qt静态编译程序是一项强大的技术,为您的应用程序提供了更好的可移植性和独立性。
通过将所有依赖项包含在可执行文件中,您可以确保应用程序在不同的系统上都能正常运行,而无需安装其他库文件。
尽管具有一些挑战和注意事项,但正确配置编译环境和仔细处理错误可以帮助您成功地进行静态编译。
希望这篇文章能够为您提供有关Qt静态编译的全面指导,让您熟练掌握这一技术,并有效地应用于您的项目中。
[转]qt-4.7交叉编译-mikit的专栏-CSDN博客
![[转]qt-4.7交叉编译-mikit的专栏-CSDN博客](https://img.taocdn.com/s3/m/53c5022a77c66137ee06eff9aef8941ea76e4b0d.png)
[转]qt-4.7交叉编译-mikit的专栏-CSDN博客[转]qt-4.7交叉编译收藏一:环境介绍虚拟机:vmware 7.0Linux 环境:ubuntu 9.04交叉编译环境:arm-linux-g++ 3.4.5硬件平台:TQ2440二:移植步骤安装交叉编译环境由于这里使用的是QT2440管盘中提供的交叉编译工具链EABI-4.3.3_EmbedSky_20100610.tar.bz2,放在/opt/目录下解压主要是在解压后可以看到其中含有两个版本,由于qt4.7.0的编译必须使用3.4.5版本所以在设置交叉编译的路径的时候使用的是在/etc/profile中加入exportPATH=/opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin:$PATH安装tslib1.41. 下载tslib1.4,解压2. 进入解压的目录运行执行./autogen.sh3. 执行./configure --prefix=/opt/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes ,经过一段时间的编译4. 执行make install5. 修改/opt/tslib/etc/ts.conf,把第二行的#号去掉(这样做的主要目的是为了在移植到板子上的时候,可以制定输入模块)6. 在/etc/profile中加入export PATH=/opt/tslib:$PATHPS:经过我的测试,我无法用以上的方法编译tslib1.4,我用的是另外一种方法:1、 ./autogen.sh #用于生成configure脚本2、 echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache#产生一个cache文件arm-linux.cache,欺骗configure,3、 CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/opt/tslib --cache-file=arm-linux.cache4、 make5、 make install交叉成功后在目标位置产生/bin、/etc、/include、/lib 4个文件夹编译qt4.7.0-arm1. 下载qt-everwhere-opensource-4.7.0,并解压最好重命名qt-everwhere-opensource-4.7.0-qte2. 开始进行配置选项./configure -embedded arm -release -opensource -fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -no-svg -no-3dnow -no-sse -no-sse2 -silent -qt-libpng -qt-libjpeg -no-libmng -no-libtiff -no-multimedia -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-glib -qt-mouse-tslib -I /opt/tslib/include -L /opt/tslib/lib -confirm-license "$@"3. 开始进行交叉编译gmake 此过程要经历很长的一段时间4. 在交叉编译成功后运行gmake install安装,这里会默认安装到/usr/local/Trolltech/QtEmbedded-4.7.0-arm5. 这个时候qte的编译就成功了制作根文件系统(移植到开发板)1.移植tslib,将ubuntu中的/opt/tslib 拷贝到根文件系统中的/opt/下面2.移植qte4.7.0将/usr/local/Trolltech/QtEmbedded-4.7.0-arm下面的lib文件夹拷贝到根文件中的相同目录下(必需得先创建相应的目录)注:此时可以根据需要裁剪lib 中的内容去掉不用的.so文件3. 增加新的显示中文的字体wenquanyi 放到上面的/lib/fonts目录下。
飞凌OK210开发板Ubuntu下Qt4.7.1编译环境配置说明

Qt4.7.1交叉编译环境配置1.编译tslib (2)2.编译Qt4.7.1 (3)3Qt creator的安装 (5)Qt4.7.1交叉编译环境配置PC环境:Ubuntu12.04开发板:OK210交叉编译器:arm-2009q3(即4.4.1)1.编译tslibtslib库,是触摸屏校准时需要的库文件,如对触摸屏的数据进行过滤、去抖动等,QT的库会调用tslib的库文件.编译tslib库1.1将tslib.tar.gz,拷到Ubuntu下,解压tar xzvf tslib.tar.gz;1.2安装autoconf、automake、libtool包在Ubuntu命令行中分别执行以下三个升级命令。
#sudo apt-get install autoconf#sudo apt-get install automake#sudo apt-get install libtool#sudo apt-get insintall g++1.3进入tslib目录:cd tslib;设置环境变量#export PATH=/usr/local/arm/arm-2009q3/bin:$PATH#export TOOLCHAIN=/usr/local/arm/arm-2009q3#export TB_CC_PREFIX=arm-linux-#export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux1.4在tslib目录下运行脚本./autogen.sh1.5用configure生成Makefile.echo"ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache #./configure--host=arm-linux--cache-file=arm-linux.cache--enable-inputapi=noPLUGIN_DIR=/usr/local/arm/tslib/plugins-prefix=/usr/local/arm/tslib-host=arm-linux--cache-file=arm-linux.cache2>&1|tee conf_log1.6编译安装make2>&|tee make_log1.7make install1.8编译完成后检查主机目录‘/usr/local/arm/’下面是否已经有了‘tslib’文件夹,如果有的话,请修改etc文件夹下的‘ts.conf’,去掉“#module_raw input”中的#号和空格,如下图所示。
ubuntu下QT环境搭建

在ubuntu下搭建QT环境,之前我已经装好了arm-linux-gcc3.4.1交叉编译环境在终端输入arm 再按两下tab建,看是不是有以下arm2hpdl arm-linux-gcc arm-linux-objdump arm-linux-addr2line arm-linux-gcc-3.4.1 arm-linux-ranlib arm-linux-ar arm-linux-gccbug arm-linux-readelf arm-linux-as arm-linux-gcov arm-linux-size arm-linux-c++ arm-linux-gprof无arm-linux-stringsarm-linux-c++filt arm-linux-ld arm-linux-strip arm-linux-cpp arm-linux-nmarm-linux-g++ arm-linux-objcopy要准备的文件:1.用于Linux/X11 32位的Qt Creator 1.3.1 二进制软件包qt-sdk-linux-x86-opensource-2010.04.bin 它是安装在虚拟机上做界面的软件QT creator。
2.用于嵌入式Linux 的Qt 库 4.6.2包qt-everywhere-opensource-src-4.6.3.tar.gz3.用于触摸屏校正的tslib-1.4.tar.gz 注意解压之后文件夹名字为tslib不要改动。
4.用于编译的arm-linux-gcc-3.4.1.tar.bz2 这个我之前已经安装好了。
1.安装Qt-creator它是用于Linux/X11 32位的Qt Creator 1.3.1 二进制软件包qt-creator-linux-x86-opensource-1.3.1.bin把下载的qt-sdk-linux-x86-opensource-2010.04.bin文件拷到一个目录(如前面的/root/tmp目录),进入目录:设置qt-sdk-linux-x86-opensource-2010.04.bin文件为可执行#chmod +x qt-sdk-linux-x86-opensource-2010.04.bin安装:# ./qt-sdk-linux-x86-opensource-2010.04.bin启动安装界面,默认一路Next即可。
qt程序编译

qt程序编译需要遵循以下步骤:
1.安装Qt库:首先,确保你的系统上安装了Qt库。
你可以从Qt
的官方网站下载并安装Qt SDK。
2.创建项目:使用Qt Creator(Qt的集成开发环境)创建一个新
的项目。
选择“文件”->“新建文件或项目”,然后选择适当的项目类型。
3.编写代码:在Qt Creator中编写你的程序代码。
你可以使用C++
语言,因为Qt主要是用C++编写的。
4.配置项目:在Qt Creator中配置你的项目,指定编译器、Qt版
本等信息。
5.编译和运行:在Qt Creator中,点击“构建”按钮来编译你的程
序。
编译成功后,你可以点击“运行”按钮来运行你的程序。
6.调试:如果程序出现错误或异常,你可以使用Qt Creator的调
试工具来诊断问题。
7.打包和部署:如果你想在其他计算机上运行你的程序,你需要
打包和部署它。
可以使用Qt的安装程序工具(如windeployqt)来创建可执行文件和所有必要的依赖项。
qt静态编译程序

qt静态编译程序Qt是一个跨平台的C++应用程序开发框架,它可以用于开发各种类型的应用程序,包括桌面应用程序、移动应用程序、嵌入式应用程序等等。
Qt的静态编译功能可以让我们将Qt程序打包成一个独立的可执行程序,不再依赖于外部的动态链接库,从而增强了程序的移植性和稳定性。
静态编译的好处之一是它可以将程序所需的所有依赖文件都打包在一起,这样可以确保程序在任何环境下都能够正常运行,而无需安装额外的库文件。
这对于分发应用程序来说非常方便,用户只需要下载一个可执行文件,就可以直接运行程序,而不需要关心其他的依赖关系。
静态编译还可以提高程序的运行效率,因为静态链接库直接嵌入到可执行文件中,程序启动时不需要再去加载和链接外部的库文件,从而减少了系统的负担和启动时间。
这一点对于一些资源有限的嵌入式系统来说尤为重要,可以提升系统的响应速度和性能。
然而,静态编译也存在一些不足之处。
首先,静态编译会增加可执行文件的大小,因为所有的依赖库都会被打包进去,这对于一些资源受限的应用场景可能会造成问题。
其次,静态编译可能会导致一些冲突问题,如果程序中使用了其他动态链接库,并且这些库与静态链接库存在冲突,就需要进行一些额外的处理。
在使用Qt进行静态编译时,我们需要注意一些细节。
首先,我们要确保Qt的源码和编译器的版本相匹配,这样可以避免一些潜在的问题。
其次,我们需要指定编译器的一些参数,比如要求静态编译。
最后,我们需要指定Qt的配置选项,确保所构建的Qt库是用于静态链接的版本。
这些步骤都需要仔细地进行,以保证静态编译的成功。
综上所述,Qt的静态编译功能可以给我们的应用程序带来很多好处,包括便捷的分发、高效的运行和稳定的表现。
然而,在静态编译时我们也需要注意一些问题,如避免冲突和合理配置编译参数。
通过合理利用Qt的静态编译功能,我们可以开发出更加可靠和高效的应用程序。
基于U盘Linux系统以及QTE的系统安装程序设计

基于U盘Linux系统以及QT/E的系统安装程序设计专业:软件工程学生:李奇指导教师:张奕摘要QT/E 是跨平台的C++图形用户界面(GUI)工具包,它是著名的Qt 开发商TrollTech 发布的面向嵌入式系统的Qt 版本,Qt 是目前KDE 等项目使用的GUI 支持库,许多基于Qt的X Window程序可以非常方便地移植到嵌入式Qt/Embedded版本上。
自从Qt/Embedded发布以来,就有许多嵌入式Linux开发商利用Qt/Embedded进行嵌入式GUI 应用开发。
U盘Linux系统采用Busybox以及CentOS 5.2进行制作,是存放在U盘上可运行的Linux操作系统,该系统具有基本的shell命令,程序运行所需要的QT/E库,以及硬盘分区格式化等工具。
系统安装程序基于QT/E开发,运行于该U盘系统,并实现了在目标机上安装操作系统这一主要功能。
U盘系统因为其便于携带,易于操作等特点,在安装系统以及系统维护方面时得到广泛的应用。
Qt/E去掉了X Lib的依赖而直接工作于Frame Buffer上,使在不带X11的Linux 系统中运行GUI程序成为了一种可能。
关键词:Linux系统QT/E开发BusyBox U盘Linux系统U disk-based Linux systems, and QT / E of the systeminstallation program designMajor: Software EngineeringStudent: Li Qi Supervisor: Zhang yiAbstractQT / E is a cross-platform C + + graphical user interface (GUI) toolkit, which is well-known Qt developers TrollTech released version of Qt for embedded systems, Qt is KDE and other projects to support the use of the GUI libraries, many based on the Qt for X Window programs can be easily ported to an embedded Qt / Embedded version. Since the Qt / Embedded has been released, there are many embedded Linux developers to use Qt / Embedded embedded GUI application development.U disk Linux system uses Busybox, as well as CentOS 5.2 for production, is stored in the U disk can run the Linux operating system, the system has a basic shell command, the program needs to run QT / E database, as well as formatting the hard disk partition tools such as . System installation program is based on QT / E development, operation in the U disk system, and achieved the target machine to install the operating system the main function.U disk system because of its easy to carry, easy to operate and so on, during the installation and system maintenance aspects of the system to be widely used. Qt / E to remove the dependence of the X Lib directly working on the Frame Buffer, so that in the Linux system without X11 running GUI program has become a possibility.Key words:Linux QT / E Development BusyBox U disk Linux system目录1导论 (1)1.1本论文的学术背景以及研究意义 (1)1.1.1本论文学术背景 (1)1.1.2本论文的研究目的 (1)1.2论文思路及结构 (1)2研究方法 (2)2.1Linux系统主要结构 (2)2.2Busybox简介 (3)2.3Qt/Embedded简介 (3)2.4U盘Linux制作方法 (4)2.4.1内核编译 (4)2.4.2Busybox编译 (6)2.4.3Grub-install编译 (7)2.4.4制作根文件系统 (8)2.4.5完成U盘Linux (9)2.5小结 (10)3系统安装程序设计原理 (11)3.1程序运行逻辑 (11)3.2Shell脚本程序 (11)3.3Qt/Embedded程序功能 (16)3.4程序中类定义 (17)3.5程序初始化 (18)3.6用户分区设置 (21)3.7系统安装阶段 (27)3.8小结 (27)4结语 (28)参考文献 (29)致谢 (30)1导论1.1本论文的学术背景以及研究意义1.1.1本论文学术背景从总体上讲,Linux系统是免费的并且是开源的,该系统主要是运行在以X86为架构的硬件平台上,该系统由全球成千上万的相关技术人员设计并实现。
Linux下编译并安装配置Qt(完整版)

Linux下编译并安装配置Qt(完整版)本文介绍的是Linux 下编译并安装配置Qt,最近准备做Nokia 的 Symbian,Maemo 下触摸屏开发。
考虑到程序的跨平台可移植性,最终选择使用Qt 开发。
相对来说,国内关于Qt 相关文档并不算很多。
作者将Linux 下编译并安装配置Qt 全过程总结了一下,只希望可以方便更多的朋友!1、获得源代码src 官网下载地址:ftp:///qt/source/2009 年 10 月 1 日发布的 qt-x11-opensource-src-4.5.3.tar.gz,大小 122 Mb。
2、解压缩1.tar xvfz qt-x11-opensource-src-4.5.3.tar.gz3、生成 makefile 文件1../configure这个时候他会问你:“Which edition of Qt do you want to use?”然后给你两个类型供选择:1.Type ''c'' if you want to use the Commercial Edition.2.Type ''o'' if you want to use the Open Source Edition.第一个是商业版,第二个是自由版。
选择''o''(Qt/嵌入式自由版是Qt为了开发自由软件提供的嵌入式版本)。
这时候,出现许可界面。
选择 ''yes'' 接受许可协议。
开始生成 makefile 文件。
这个大约需要 5 -10 分钟的时间。
4、Qt 编译1.gmake这个过程时间比较长,需要两个小时左右。
5、Qt 安装运行 gmake install默认安装至 /usr/local/Trolltech/Qt-4.5.3大约 5 - 10 分钟。
正常结束,安装完毕。
Ubuntu下QT源码编译详细过程

10 .QT10.1 qt的源码编译安装编译源码的所需工具和库X11:1. apt-get install libX11-dev libXext-dev libXtst-dev2. apt-get install xorg-dev3. apt-get install libtool4. apt-get install autoconf5. apt-get install g++ARM:1 apt-get install qt3-dev-toolsapt-get install qt4-qmake2 安装触屏支持库tslib-1.4tar -zxvf tslib-1.4.tar.gzcd 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.cacheecho "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 参数。
Linux下静态编译Qt程序

Linux下静态编译Qt程序⼀般情况下,我们⽤Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使⽤的。
会提⽰缺少……库⽂件之类的错误。
这就是动态编译的结果。
但是如果我们想编译⼀个程序,这个程序在发给别⼈后,他们可以直接打开,⽽不需要特别地去先安装Qt库,那就需要采⽤静态编译了。
在Linux下如何静态编译Qt程序呢?⾸先需要先安装静态编译的Qt,也就是静态编译Qt程序⾸先是需要⼀个静态编译安装的Qt1、下载源安装程序,如 qt-x11-opensource-src-4.5.1.tar.gz2、解压到某⼀⽬录3、cd 进⼊解压后的⽬录,命令:./configure -static -release -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg -nomake demos -nomake examples -qt-sql-sqlite -prefix/usr/local/Trolltech/Qt-4.5.1_static参数-static 指的是要采⽤静态编译Qt的⽅法参数-release指的是只编译release版本的库参数-qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg 是更好确定Qt编译出的程序能在⽬前不知的系统下运⾏。
参数-nomake demos -nomake examples 指的是不编译demos和examples参数-qt-sql-sqlite 如果没有这个参数,configure的时候,可能会提⽰sqlite 有问题⽽中⽌。
参数 -prefix /usr/local/Trolltech/Qt-4.5.1_static 指明静态编译的Qt安装的⽬录,命名Qt-4.5.1_static是为了区别动态编译安装的Qt,因为如果没有这个参数,安装时会覆盖之前动态编译安装的Qt(如果有的话)。
【IT专家】Linux下静态编译Qt

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Linux下静态编译Qt2015/10/01 957 Qt采用编译的方式安装的时候,配置中默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,因此在此介绍一下qt如何来进行静态编译 第一步:下载源码包 Qt/X11版本:qt-x11-opensource-src-x.x.x.tar.gz 第二步:解压缩 tar zxvf qt-x11-opensource-src-x.x.x.tar.gz 第三步:进入到刚才解压缩后的文件夹下并进行配置,如下 ./configure -release -platform linux-g++-64 -static -nomake examples -nomake demos -no-qt3support -no-script -no-scripttools -no-multimedia -no-audio-backend -no-openssl -no-opengl -no-webkit -no-phonon -no-sql-sqlite 第四步:上一步配置成功后,就可以编译了 make或者gmake 第五步:安装 make install或者gmake install 第六步:配置环境变量: #vi /root/.bash_profile //打开root用户.bash_profile文件在root用户.bash_profile文件中设置环境变量,在此文件里面添加如下内容:QTDIR=/usr/local/Trolltech/Qt-x.x.x{qt实际安装路径}PATH=$QTDIR/bin:$PATHMANPATH=$QTDIR/doc/man:$MANPATHLD_LIBRA RY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHexport QTDIR PATH MANPATHLD_LIBRARY_PATH 然后保存 source /etc/profile 使刚才的环境变量生效。
虚拟机Ubuntu静态库和动态库的编程

虚拟机Ubuntu静态库和动态库的编程2020-03-22⼀、不⽤库去执⾏,使⽤Makefile去实现。
代码testcal.c Pow.c Pow.o cal.h。
Pow.c1int Pow (int x ,int y){2int result=1;3int i=0;4for(i=0;i<y;i++)5 {6 result *=x;7 }8910return result ;11 }cal.h#ifndef cal_h#define cal_hint Pow(int, int);#endiftestcal.c1 #include<stdio.h>2 #include<math.h>3 #include "cal.h"4int main (int argc, char **argv)5 {6int x;7int y;8 printf("please input the x:");9 scanf("%d",&x);10 printf("please input the y:");11 scanf("%d",&y);1213 printf("result=%d",Pow(x,y));14return0;15 }这是附加⽂件Makefile,⽂件名就为Makefile。
1 OBJ=testcal.o Pow.o2 testcal:$(OBJ) cal.h3 gcc $(OBJ) -o testcal4 testcai.o:testcai.c5 Pow.o:Pow.c678 .PHONY:cleanA clean9 cleanA:10 rm testcal $(OBJ)111213 clean:14 rm $(OBJ)make1 cc -c -o testcal.o testcai.c2 cc -c -o Pow.o Pow.c3 gcc -o testcal testcal.c Pow.o查看⽂件⼤⼩命令: ls -l1总⽤量482 -rw-r--r-- 1 ljp ljp 57 3⽉2121:08 cal.h3 -rw-r--r-- 1 ljp ljp 1412 3⽉2121:57 libljp.a4 drwxr-xr-x 2 ljp ljp 4096 3⽉2122:01 libsamp5 drwxr-xr-x 2 ljp ljp 4096 3⽉2122:31 libso6 -rw-r--r-- 1 ljp ljp 171 3⽉2209:34 Makefile7 -rw-r--r-- 1 ljp ljp 101 3⽉2121:28 Pow.c8 -rw-r--r-- 1 ljp ljp 1272 3⽉2121:48 Pow.o9 -rwxr-xr-x 1 ljp ljp 8464 3⽉2121:48 testcal10 -rw-r--r-- 1 ljp ljp 279 3⽉2121:32 testcal.c11 -rw-r--r-- 1 ljp ljp 2088 3⽉2121:48 testcal.o从上可以看出形成的可执⾏⽂件为8464字节,⼤概8k左右运⾏结果如下命令:./testcal1 please input the x:22 please input the y:33 result=8⼆、使⽤静态库。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 静态编译
原文参考:/symbian-270510.htm。