博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows 下msvc2010编译 NSIS 2.46
阅读量:6272 次
发布时间:2019-06-22

本文共 1851 字,大约阅读时间需要 6 分钟。

hot3.png

按照 NSIS 帮助文档的说法,要构建 NSIS 首先安装  和 。

1、从NSIS 官方网站  下载 NSIS 2.46 的源代码 zip 包,解压到 C:\nsis-2.46-src,此次我直接从NSIS的repository checkout源码包。

2、从Python 官方网站  下载 Python 2.7.6 安装到 C:\dev\Python27,将此路径添加到系统 PATH 环境变量。

3、从SCons 官方网站  下载 scons-2.3.0-setup 安装(自动默认到 Python 的子目录),将路径 C:\dev\Python27\Scripts 添加到系统 PATH 环境变量。

4、由于 NSIS 的 Menu 采用 wxWidgets 编写,因此去 wxWidgets 官方网站  下载 wxWidgets-2.9.5.zip解压到 C:\dev\wxWidgets。新建环境变量 WXWIN,值为该路径 C:\dev\wxWidgets

5、在进行下一步之前,确定你的系统有MSVC的编译环境,我此次编译使用的是msvc010。

6、进入 NSIS 的 Menu 目录,C:\nsis-2.46-src\Contrib\NSIS Menu\wx,Visual Studio Command Prompt (2010)命令行下启动 wxbuild.bat,先编译 wxWidgets程序,等待 10 分钟。

7、进入 NSIS 目录 C:\nsis-2.46-src\Contrib\NSIS Menu\,修改 SConscript文件,以下是这个文件的patch

--- C:/SConscript	星期三 四月 10 17:13:20 2013+++ C:/nsis-2.46-src/Contrib/NSIS Menu/SConscript	星期四 十一月 28 18:29:30 2013@@ -13,17 +13,27 @@ resources = Split(""" rc = 'nsismenu/nsismenu.rc'  libs = Split("""-   advapi32-   comctl32+   kernel32+   user32    gdi32+   comdlg32+   winspool+   winmm    shell32-   user32+   comctl32+   ole32+   oleaut32+   uuid+   rpcrt4+   advapi32+   wsock32+   wininet """)  if env['UNICODE']:-   libs.append(["wxbase29u", "wxmsw29u_core", "wxmsw29u_html"])+   libs.append(["wxbase29u", "wxmsw29u_core", "wxmsw29u_html", "wxpng", "wxjpeg", "wxtiff", "wxzlib", "wxexpat"]) else:-   libs.append(["wxbase29", "wxmsw29_core", "wxmsw29_html"])+   libs.append(["wxbase29", "wxmsw29_core", "wxmsw29_html", "wxpng", "wxjpeg", "wxtiff", "wxzlib", "wxexpat"])  html = Split("""    #Menu/index.html

8、回到 NSIS 主目录 C:\nsis-2.46-src,撰写一个编译脚本build.bat: 

set ZLIB_W32=C:\dev\zlib-1.2.8set WXWIN=C:\devfolder\wxWidgets-2.9.5set MSVS_VERSION = 10.0scons NSIS_CONFIG_LOG=yes NSIS_MAX_STRLEN=8192 dist-zippause

Visual Studio Command Prompt (2010)命令行下启动build.bat:等待 5-10 分钟。在 NSIS主目录下会躺着一个 zip 包,就是它了。

转载于:https://my.oschina.net/bygreencn/blog/179898

你可能感兴趣的文章
微信支付
查看>>
CodeBlocks中的OpenGL
查看>>
短址(short URL)
查看>>
C++零基础教程(一)——何谓编程
查看>>
第十三章 RememberMe——《跟我学Shiro》
查看>>
mysql 时间函数 时间戳转为日期
查看>>
索引失效 ORA-01502
查看>>
Oracle取月份,不带前面的0
查看>>
Linux Network Device Name issue
查看>>
IP地址的划分实例解答
查看>>
如何查看Linux命令源码
查看>>
运维基础命令
查看>>
Linux下的lds链接脚本简介(二)
查看>>
入门到进阶React
查看>>
C++每日练笔之日期类(基类)
查看>>
SVN 命令笔记
查看>>
修复Postfix 的Relay access denied问题
查看>>
检验手机号码
查看>>
重叠(Overlapped)IO模型
查看>>
ffmpeg study 1
查看>>