(linux qt 编译)

(linux

linux下执行qt程序怎么编译运行?

1、在Linux下的命令行编辑程序:# mkdir hello//mkdir命令创建一个hello目录# cd hello//cd命令切换到刚才创建的hello目录# vi main.cpp//在hello目录中用vi创建一个main.cpp文件 将下面的代码输入到main.cpp文件中#include

怎样在ubuntu下安装qt嵌入式?

1 cd ~/Qtenv 2 3 chmod u+x qt-sdk-linux-x86-opensource-2010.04.bin 4 5 ./qt-sdk-linux-x86-opensource-2010.04.bin 为了文件管理方便,将sdk也安装在Qtenv文件夹中。 2、解压源代码包 在用户目录下建立一个Qtenv目录,用于存放编译源文件。 mkdir $HOME/Qtenv 在qtembedded目录下创建arm和x86目录。创建这两个目录主要是为了编译一个用户arm开发版的QTE,另一个目录用于存放用于qvfb的x86下QTE,这样演示和开发都很方便。 1 cd ~/Qtenv 2 mkdir arm x86 接下来将源代码包分别复制到arm和x86下并解压缩。这样做虽然浪费了一些硬盘空间(ps:在宿主机上的硬盘太不值钱了),但能为将来再配置和编译节省很多时间。 1 cd ~/Qtenv 2 mv qt-everywhere-opensource-src-4.6.3.tar.bz2 ./arm 3 cd ~/Qtenv/arm 4 tar xjvf qt-everywhere-opensource-src-4.6.3.tar.bz2 5 6 cd ~/Qtenv/x86 7 mv qt-everywhere-opensource-src-4.6.3.tar.bz2 ./x86 8 tar xjvf ./x86/qt-everywhere-opensource-src-4.6.3.tar.bz2 解压缩后分别针对arm平台和x86平台进行配置,配置前可输入 ./configure -embedded -help 进行配置帮助查询,根据平台配置,并编译和安装文件。其命令代码如下: 1 cd ~/Qtenv/arm 2 ./configure -prefix $HOME/Qtenv/arm -embedded arm -nomake docs -nomake demo -nomake examples 3 make 4 make install 5 6 cd ~/Qtenv/x86 7 ./configure -prefix $HOME/Qtenv/arm -embedded x86 -nomake docs -nomake demo -nomake examples 8 make 9 make install 在经过漫长的配置、编译后就完成了QTE的安装。本人在arm版的编译过程中出现过两个错误,在参考《在arm-linux-gcc 3.4.1下编译 qt-embedded-4.6.2》完成编译。 完成编译和安装后需要对系统的环境变量进行设置,设置可以是临时性设置和永久性设置。临时行设置是直接在命令窗口输入 1 export QTENV=$HOME/Qtenv 2 export QTXDIR=$QTENV/qtsdk 3 export QTEDIR=$QTENV/x86 4 export PATH=$QTXDIR/qt/bin:$PATH 5 export LD_LIBRARY_PATH=$QTXDIR/lib:$LD_LIBRARY_PATH 6 export QVFBDIR=$QTXDIR/qt/bin 7 export QTEMAKEDIR=$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会导致文件损坏.

所以应该先用strip删除符号表缩小二进制文件,然后再用patchelf设置rpath.

题外话,Android上既没有glibc库,也没有库链接器ld-linux.so.3.

如果你要把Debian ARM(如树莓派Raspbian)上的软件放到Android上跑,你一样可以打包程序依赖的共享库,让程序也能跑在Android上,比如PHP:

也就是你把库链接器ld-linux-armhf.so.3和PHP依赖的库都放到/data/local/tmp/web/lib里,然后设置个别名,就能在Android的adb shell里运行树莓派的PHP了.

当然,你也可以用patchelf设置PHP的interpreter和rpath,效果差不多:

怎样交叉编译一个QT应用程序?

1.设置环境变量:rPATH=添加为交叉环境下编译后生成的qmake路径,通常和主机的系统是一种架构,同时需要确保交叉gcc编译器在在PATH定义rQMAKESOEC=交叉编译的对象的的平台描述文件,例如makespec/qws/linux-arm-g++rQTDIR=Qt的安装文件,存放这库和头文件rLD_LIBRARY_PATH=存放的是Qt的交叉编译后的库,准备为目标编译链接的库r2。执行环境变量r通常我们都会将以上的设置放置在一个bash脚本中,需要的时候就执行一下。开始编译r1.使用qmake -project来生成项目文件****.pror2使用qmake来生成Makefile文件r3使用make来编译移植:使用readeif工具来分析目标系统的以来库,然后copy相关的库到目标文件系统内。通常我们也是采取脚本的方式来完成。r一般而言,凡是有规律的或者重复性的工作,我们都可以采取脚本的方式来解决。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平