Linuxqt编译
1.Linux下的命令行编辑器:#mkdirhello//mkdir命令创建hello目录#cdhello//cd命令切换到新创建的hello目录#vimain.cpp//在hello目录下创建一个带有vi的main.cpp文件,在main.cpp文件中输入以下代码#include。
ubuntu下如何安装qt嵌入式系统?
1cd ~/qtenv 23 chmodu+xqt-sdk-Linux-x86-open source-2010.04 . bin 45 ./qt-SDK-Linux-x86-open source-2010.04 . bin为了方便文件管理,在Qt中还安装了SDK。2.解压源代码包,在用户目录下建立一个Qtenv目录,用于存储编译后的源文件。Mkdir$HOME/Qtenv在qtembedded目录下创建arm和x86目录。这两个目录主要是为了编译一个用户的arm开发版本的QTE而创建的,另外一个目录用来存放x86下的QTE for qvfb,方便演示和开发。1cd~/Qtenv 2mkdirarmx86接下来将源代码包分别复制到arm和x86上并解压。虽然这样会浪费一些硬盘空间(ps:主机上的硬盘太不值钱了),但是可以为以后的重新配置和编译节省很多时间。1cd ~/Qtenv 2 mvqt-everywhere-open source-src-4 . 6 . 3 . tar . bz2 ./arm 3cd ~/Qtenv/arm 4 tarxjvfqt-everywhere-open source-src-4 . 6 . 3 . tar . bz2 5 6cd ~/Qtenv/X86 7 mvqt-everywhere-open source-src-4 . 6 . 3 . tar . bz2 ./X86 tarxjvf ./x86/Qt-everywhere-open source-src-4 . 6 . 3 . tar . bz2解压后分别配置为arm平台和x86平台,可以进入。//配置-嵌入式-帮助配置。命令代码如下:1cd ~/qtenv/arm2。/configure-prefix $ home/qtenv/arm-embedded arm-nomake docs-nomake demo-nomake示例3 make 4 make install 56cd ~/qtenv/X867。/configure-prefix $ home/QTEnv/arm-embedded x86-nomake docs-nomake demo-nomake examples 8 make 9 make install经过长时间的配置和编译,完成了qte的安装。我在arm版本的编译过程中犯了两个错误。我是参考“在arm-linux-gcc3.4.1下编译qt-embedded-4.6.2”完成编译的。编译安装后,需要设置系统的环境变量,可以是临时的,也可以是永久的。临时行设置是直接输入1 exportqtenv = $ home/Qt env 2 exportqtxdir = $ qtenv/qtsdk 3 exportqtedir = $ Qt env/x86 4 export path = $ qtx dir/Qt/Bin:$ path 5 exportld _ library _ path = $ Qt xdir/lib:$ LD _ library _ path 6 exportqvfbdir = $ qtx dir/Qt/Bin 7 exportqtemakedir = $ qtedir/Bin这些变量可以根据自己的喜好添加或删除。关闭当前命令终端后,此设置方法无效。第二种方法是编辑。bash_profile文件,添加上面的命令行并保存重启命令终端。
ARMLinux环境下如何搭建QT运行环境?
1,是2,QtCreator只是一个集成开发工具。这个版本在线和离线都是免费的。Qte不是最新的,但是最好用和你在Linux开发的一样的。首先在Linux下交叉编译Qte库,然后把Lib文件移植到板上,最后通过交叉编译库编译你的pc。
如何在树莓派下运行移植的QT程序?
可以参考一下SQLiteStudio,Qt写的跨平台SQLite管理工具,封装了依赖的Qt库本身,可以立即解压使用,兼容不同的Linux发行版。原因其实和Windows Qt程序的Qt库差不多。
编译前将参数传递给连接器:
描述:
-Wl告诉编译器将以下参数传递给链接器。
Rpath是gcc的一个参数。当程序被加载时,它将搜索rpath目录以找到* * *共享库。
rpath添加的目录信息保存在可执行文件中。
$ORIGIN表示可执行文件所在的目录。
也就是说,运行时程序将首先在自己目录的lib中加载依赖库,如果没有,则在系统库中查找。
如果您的程序在编译时没有传递rpath参数,您也可以使用patchelf来修改程序的rpath:
注意:patchelf修改文件后进行剥离会导致文件损坏。
所以要先用strip删除符号表收缩二进制文件,再用patchelf设置rpath。
题外话,Android上既没有glibc库,也没有库链接器ld-linux.so.3。
如果想在Android上运行DebianARM上的软件(比如树莓派的Raspbian),还可以打包程序所依赖的* * *库,让程序也能在Android上运行,比如PHP:
也就是你把库链接器ld-linux-armhf.so.3和PHP所依赖的库放在/data/local/tmp/web/lib中,然后设置好各个名称,就可以在Android的adbshell中运行树莓派PHP了。
当然也可以用patchelf来设置PHP解释器和rpath,效果也差不多:
如何交叉编译一个QT应用?
1.设置环境变量:rPATH= =作为跨环境编译后生成的qmake路径添加,跨环境通常是与宿主系统的架构。同时需要保证交叉gcc编译器在路径中定义了rQMAKESOEC = =交叉编译对象的平台描述文件,比如makespec/QWS/Linux-arm-g++ rqtdir = Qt的安装文件。库和头文件rLD_LIBRARY_PATH=存储Qt的交叉编译库,准备编译目标的链接库r2。执行环境变量r通常我们会把上面的设置放在一个bash脚本中,在需要的时候执行。开始编译r1。使用qmake-project生成项目文件* ****.pror2使用qmake生成Makefile r3使用make编译迁移:使用readeif工具分析目标系统的源码库,然后将相关库复制到目标文件系统中。通常我们也是按剧本来做。r一般来说,我们可以通过脚本的方式来解决任何常规的或重复性的工作。