Qt5静态编译时configure的static和static-runtime有什么区别

7 篇文章 0 订阅

1. 先说明验证的Qt版本:Qt 5.9.9(qt-everywhere-opensource-src-5.9.9),Qt5的其他小版本应该也是类似的,但本人未做具体验证。

2.两个自己用过的编译Qt5静态库的configure命令参数。

configure -confirm-license -opensource -platform win32-msvc -debug-and-release -static -force-debug-info -prefix "D:\Qt\5.9.9_x64_static_vs2015_MD" -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -no-opengl -qt-freetype -nomake tests -no-compile-examples -nomake examples -skip webengine

configure -confirm-license -opensource -platform win32-msvc -debug-and-release -static -static-runtime -force-debug-info -prefix "D:\Qt\5.9.9_x64_static_vs2015_MT" -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -no-opengl -qt-freetype -nomake tests -no-compile-examples -nomake examples -skip webengine

3. 本文主题:“-static”和“-static-runtime”的区别。

(1)首先请看configure的帮助中的官方英文说明

-static .............. Build static Qt libraries [no] (yes for UIKit)

-static-runtime ...... With -static, use static runtime [no] (Windows only)

(2)本文重点--个人理解和解释一下(其实是走了弯路才回头检查发现的,之前是两个一起写的,想着保险嘛~_~)

-static:编译静态的Qt库,意思是编译出来只有Qt5Core.lib等静态库,而没有Qt5Core.dll等动态库,因此使用这些Qt库编译出来的程序,也就不存在依赖Qt的动态链接库。

-static-runtime:(可选的)随-static一起的选项,使用静态运行时(只对Windows系统)。重点解释下,所谓这个runtime(不准确地说)就是C语言运行库,具体到VS编译就是说msvcp*.dll等库,如果使用了这个选项,那么连C语言的运行时库也被编译成静态的,编译出来的可执行程序可以连C语言的动态库也不需要(特指Windows下的msvcp*.dll等库),也就是对应VS编译时的MT/MTd。如果不采用-static-runtime选项,那么对应VS编译时的MD/MDd。

 

解释地很啰嗦啦,但是想必看到这里,应该您已经明白了“-static”和“-static-runtime”的区别^_^

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

piaopiaolanghua

感谢鼓励,再接再厉!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值