NSIS + QT 制作安装包的踩坑之旅

先记录下踩坑的事故现场:

1、动态库的接口参数用了std::string或者std::vector
NSIS + QT 制作安装包的踩坑之旅
参考文章:
https://blog.csdn.net/zj510/article/details/35290505
https://blog.csdn.net/chinabinlang/article/details/80496352
https://*.com/questions/35310117/debug-assertion-failed-expression-acrt-first-block-header
解决方案:dll改成MDD/MD

2、跨线程操作界面控件导致:
NSIS + QT 制作安装包的踩坑之旅
NSIS中,解压文件开启了另外一个线程,但是文件解压的进度又需要发送给界面,此时调用界面操作的接口(该接口直接操作界面控件),会导致安装崩溃。
解决方案:
由于是QT,可采用发送信号的方式来改变进度条的值,不会导致崩溃。

3、这里BUG,暂时无解!在VNISEdit中修改脚本文件,竟然提示这个!!
NSIS + QT 制作安装包的踩坑之旅

4、编译的时候提示的BUG,代码暂时也没看出什么内存溢出的问题
NSIS + QT 制作安装包的踩坑之旅
解决方案:
1)、脚本文件用其他工具打开,改好后保存,再来编译
2)、用bat来执行脚本,bat的内容:“D:\Program Files (x86)\NSIS\makensisw.exe” %~dp0nsisInstall.nsi

5、待补充
6、待补充