Linux/Ubuntu下 静态编译Qt程序

本文详细介绍了在Linux Ubuntu系统下如何静态编译Qt程序,以避免依赖动态链接库。首先,通过下载Qt源码并指定相应配置参数进行静态编译,接着进行编译、安装和环境变量设置,最后在Qt Creator中配置编译器进行测试,确保程序可以在未安装Qt库的系统上运行。
摘要由CSDN通过智能技术生成

项目需要,原来在windows平台动态编译程序,使用NSIS脚本,找到动态链接库,再使用打包软件,打包即可发布。现在平台转到了Ubuntu,动态编译的话需要ldd XXX(可执行程序),将所需要的动态库打包。觉得麻烦,不如直接静态编译类库,再用静态库编译即可一劳永逸。

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

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

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


二、一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的。会提示缺少……库文件之类的错误。这就是动态编译的结果。但是如果我们想编译一个程序,这个程序在发给别人后,他们可以直接打开,而不需要特别地去先安装Qt库,那就需要采用静态编译了。在Linux下如何静态编译Qt程序呢?</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值