qt编译程序正在创建库怎么解决

qt编译程序正在创建库怎么解决,第1张

在Qt编译程序时,如果编译过程卡在“正在创建库”阶段停止不动,可能有以下几种原因:

编译器版本不兼容。请确保您使用的编译器版本与Qt版本兼容。您可以查看Qt的官方文档来确定兼容的编译器版本。

编译器设置不正确。请确保您在Qt的项目设置中正确设置了编译器和链接器路径。您可以在Qt Creator中选择“项目”>“构建和运行”>“构建设置”来查看和修改编译器设置。

缺少依赖项。在编译过程中,如果缺少必要的依赖项,可能会导致编译过程卡在“正在创建库”阶段。请确保您的系统中安装了所有必要的依赖项,并且这些依赖项的版本与您的Qt版本兼容。

项目文件有误。请确保您的Qt项目文件(.pro文件)正确设置了所有必要的库和依赖项。您可以在Qt Creator中打开项目文件,查看和修改项目设置。

编译过程被卡住了。有时候编译过程会因为各种原因卡住,导致编译过程无法继续。您可以尝试在终端中使用“Ctrl+C”来中止编译过程,并重新启动编译。

如果您仍然无法解决问题,请尝试在Qt Creator中查看编译输出,查找可能的错误信息。或者,您可以尝试使用其他编译器或重新安装Qt,并重新编译您的程序。

登录/注册

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-4.5.1.tar.gz

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-4.5.1_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-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(如果有的话)。

4、没问题后

make

5、make没问题后再 

sudo make install

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

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

QTDIR=/usr/local/Trolltech/Qt-4.5.1_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-4.5.1_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)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。所以其优缺点与动态编译的可执行文件正好互补。


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

原文地址: https://outofmemory.cn/yw/12166243.html

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

发表评论

登录后才能评论

评论列表(0条)

保存