QT交叉编译环境

QT交叉编译环境,第1张

将安装全套的Qt开发环境,可以在PC端进行qt开发。

Ubuntu1404的Qt版本为521,1604的Qt版本为551,高版本Qt库可以向下兼容运行低版本工具链编译的程序,因此这里选用521版本作为编译工具链。

进入Qt工程目录中,目录下会有个<工程名>pro文件,如果目录中存在<工程名>prouser文件,是之前qtcreator生成的配置文件,请先删除。然后运行:

即可完成编译,编译好的程序可以放到树莓派上直接运行。

另外,工程的配置可以通过修改 工程名pro文件,例如添加链接库,只需要在文件中添加如下选项:

添加c99支持:QMAKE_CFLAGS += -std=c99

一、如果在运行某软件或编译程序时提示缺少、找不到qtgui4dll等类似提示,您可将从脚本之家下载来的qtgui4dll拷贝到指定目录即可(一般是system系统目录或放到软件同级目录里面),或者重新添加文件引用。

二、您从我们网站下载下来文件之后,先将其解压(一般都是rar压缩包), 然后根据您系统的情况选择X86/X64,X86为32位电脑,X64为64位电脑。默认都是支持32位系统的, 如果您不知道是X86还是X64,您可以看这篇文章。

三、根据软件情况选择文件版本。此步骤比较复杂,如果是Windows的dll文件,

版本号以50开头的或含有 nt 一般是windows2000的文件。

版本号以51开头的或含有 xp、xpsp1、xpsp2、xpsp3 信息的一般是windowsXP的文件。

版本号以60开头的或含有 longhorn、vista 信息的一般是windowsVista的文件。

版本号以61开头的或含有 win7 信息的一般是windows7的文件。 如果不是windows的dll文件,则需要灵活查看版本号、描述、网友提供的信息、以及相关dll的版本号去判断。

四、直接拷贝该文件到系统目录里:

1、Windows 95/98/Me系统,将qtgui4dll复制到C:\Windows\System目录下。

2、Windows NT/2000系统,将qtgui4dll复制到C:\WINNT\System32目录下。

3、Windows XP/WIN7/win10系统(64位系统对应64位dll文件,32位系统对应32位dll文件),将qtgui4dll复制到C:\Windows\System32目录下。

4、如果您的系统是64位的请将32位的dll文件复制到C:\Windows\SysWOW64目录,具体的方法可以参考这篇文章:win7 64位旗舰版系统运行regsvr32exe提示版本不兼容

五、打开"开始-运行-输入regsvr32 qtgui4dll",回车即可解决。希望脚本之家为您提供的qtgui4dll对您有所帮助。

1vs2017安装

2QT5122安装时选择源码

3Python275版本或之后版本,不支持Python3

1以管理员权限打开vs2017 x64_x86

2开启64位机器上编译32位vs脚本

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsamd64_x86bat"

3切换到qwebengine目录

cd D:\Qt\Qt5123\5123\Src\qtwebengine

d:

4D:\Qt\Qt5122\5122\msvc2017\bin\qmakeexe -- -webengine-proprietary-codecs

5nmake && nmake install

6等待编译结束

登录/注册

Linux/Ubuntu下 静态编译Qt程序

转载205 阅读

mb5ff5917b5bbc5

2017-07-28 07:07:00

关注

一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的。会提示缺少……库文件之类的错误。这就是动态编译的结果。

但是如果我们想编译一个程序,这个程序在发给别人后,他们可以直接打开,而不需要特别地去先安装Qt库,那就需要采用静态编译了。

在Linux下如何静态编译Qt程序呢?

首先需要先安装静态编译的Qt,也就是静态编译Qt程序首先是需要一个静态编译安装的Qt

1、下载源安装程序,如 qt-x11-opensource-src-451targz

2、解压到某一目录

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-451_static 

 /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-451_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-451_static 指明静态编译的Qt安装的目录,命名Qt-451_static是为了区别动态编译安装的Qt,因为如果没有这个参数,安装时会覆盖之前动态编译安装的Qt(如果有的话)。

4、没问题后

make

5、make没问题后再 

sudo make install

6、增加(或改变)环境变量:

在你home目录下你的的名字的目录中,在profile文件中追加(或改变)如下环境变量:(为Qt设置一些特定的环境变量,这个很重要!profile文件是隐藏的,可在你的名字目录下,按Ctrl+H显示所有文件查看到)

QTDIR=/usr/local/Trolltech/Qt-451_static/    

PATH=$QTDIR/bin:$PATH    

MANPATH=$QTDIR/doc/man:$MANPATH    

LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH    

export QTDIR PATH MANPATH LD_LIBRARY_PATH   

QTDIR=/usr/local/Trolltech/Qt-451_static/ 

PATH=$QTDIR/bin:$PATH 

MANPATH=$QTDIR/doc/man:$MANPATH 

LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH 

export QTDIR PATH MANPATH LD_LIBRARY_PATH   

7、重启

8、在终端测试一下qmake

成功的话,下来用qmake编译出的Qt程序就是采用静态编译的。这时你会发现,静态编译出来的程序大小变大了相当多。

静态编译与动态编译的区别

动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。、

静态编译就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。所以其优缺点与动态编译的可执行文件正好互补。

以上就是关于QT交叉编译环境全部的内容,包括:QT交叉编译环境、Qt程序如何判断能兼容到哪个qt版本、Qt5.12.2编译qwebengine开H264支持等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9311642.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存