工具
Depends.exe
nisedit2.0.3.exe
nsis-2.50-setup.exe
先安装nsis-2.50-setup.exe, 在安装nisedit2.0.3.exe. 都按默认安装即可. Depends.exe不需要安装.
步骤
1, 在工程中的main()函数里添加如下代码解决库路径问题.
QTextCodec *xcodec = QTextCodec::codecForLocale() ;
QString exeDir = xcodec->toUnicode( QByteArray(argv[0]) ) ;
QString BKE_CURRENT_DIR = QFileInfo(exeDir).path() ;
QStringList libpath;
libpath << BKE_CURRENT_DIR+QString::fromLocal8Bit("/plugins/platforms");
libpath << BKE_CURRENT_DIR <<BKE_CURRENT_DIR+QString::fromLocal8Bit("/plugins/imageformats");
libpath << BKE_CURRENT_DIR+QString::fromLocal8Bit("/plugins");
libpath << QApplication::libraryPaths();
QApplication::setLibraryPaths(libpath) ;
QApplication a(argc, argv);
2, 在工程文件.pro中添加如下内容, 其中”DESTDIR=install”指定了生成的.exe文件目录.
MOC_DIR=temp/moc
RCC_DIR=temp/rcc
UI_DIR=temp/ui
OBJECTS_DIR=temp/obj
DESTDIR=install
3, 编译工程, 生成.exe文件如下.
4, 查找依赖
用Depends.exe工具打开3中生成的.exe文件.
其中, 前面有黄色问号图标的.DLL是可执行程序依赖的DLL, 找到这些DLL并将它们拷贝到”install”目录下. 重复双击”GSMFALLTOOLPROJ.EXE”, 直到所有所有依赖的DLL都拷贝过来为止.
关闭Depends.exe.
将”C:\Qt\Qt5.5.1\5.5\mingw492_32\”目录下的”plugins”目录拷贝到”install”目录下. 进入到”install/plugins”目录下, 删除除”platforms”目录外的所有目录.
5, 添加资源
将图标文件”install.ico”和”uninsitall.ico”拷贝到”install”目录下, 将”Licence.txt”拷贝到”install”目录下, “Licence.txt”内容随便写些即可. 最后, “install”目录下的文件如下:
6, 打开HM NIS Edit.
点击“文件”-“新建脚本:向导”.
点击”下一步”, 出现如下界面
填写完相关信息后点击”下一步”, 出现如下界面.
安装程序图标选择”install”目录下的”install.ico”文件. 安装程序语言选择“SimpChinese”,其他如图, 点击“下一步”, 出现如下界面.
设置授权文件的路径,点击“下一步”, 出现如下界面.
应用程序列表中有默认的两个文件,实际制作安装包时,这两个文件往往不是我们需求的文件, 选中它们,利用“删除文件”按钮将其移除. 如图
然后点击“添加目录树”按钮. 弹出目录编辑界面,通过浏览文件夹按钮选择目录,如图目录为“F:\mshome\Project\GsmFallToolProj-V1.0\install. 点击“确定”按钮.
待文件全部加载到应用程序文件列表,如图,点击下一步.
点击下一步.
点击下一步.
点击下一步.
勾选“保存脚本”, “转换文件路径到相关路径”, 点击“完成”.
提示保存脚本窗口,为脚本命名,如图为“物联设备调试安装工具安装示例.nsi”, 点击“保存”按钮.
脚本保存后自动回到编辑器主界面.
点击“NSIS”-“编译脚本”. 编译完成,在日志窗格会显示类似的信息.
在脚本的同目录下可以看到安装包Setup.exe已产生.
到此,利用安装向导制作的安装包就完成了.