按照 NSIS 幫助文檔的說法,要構建 NSIS 首先安裝 Python 和 SCons。 html
一、從NSIS 官方網站 http://sourceforge.net/projects/nsis/files/ 下載 NSIS 2.46 的源代碼 zip 包,解壓到 C:\nsis-2.46-src,這次我直接從NSIS的repository checkout源碼包。 python
二、從Python 官方網站 http://www.python.org/getit/ 下載 Python 2.7.6 安裝到 C:\dev\Python27,將此路徑添加到系統 PATH 環境變量。 shell
三、從SCons 官方網站 http://sourceforge.net/projects/scons/files/ 下載 scons-2.3.0-setup 安裝(自動默認到 Python 的子目錄),將路徑 C:\dev\Python27\Scripts 添加到系統 PATH 環境變量。 api
四、因爲 NSIS 的 Menu 採用 wxWidgets 編寫,所以去 wxWidgets 官方網站 http://www.wxwidgets.org/downloads/ 下載 wxWidgets-2.9.5.zip解壓到 C:\dev\wxWidgets。新建環境變量 WXWIN,值爲該路徑 C:\dev\wxWidgets app
五、在進行下一步以前,肯定你的系統有MSVC的編譯環境,我這次編譯使用的是msvc010。 網站
六、進入 NSIS 的 Menu 目錄,C:\nsis-2.46-src\Contrib\NSIS Menu\wx,Visual Studio Command Prompt (2010)命令行下啓動 wxbuild.bat,先編譯 wxWidgets程序,等待 10 分鐘。 ui
七、進入 NSIS 目錄 C:\nsis-2.46-src\Contrib\NSIS Menu\,修改 SConscript文件,如下是這個文件的patch spa
--- 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
八、回到 NSIS 主目錄 C:\nsis-2.46-src,撰寫一個編譯腳本build.bat: .net
set ZLIB_W32=C:\dev\zlib-1.2.8 set WXWIN=C:\devfolder\wxWidgets-2.9.5 set MSVS_VERSION = 10.0 scons NSIS_CONFIG_LOG=yes NSIS_MAX_STRLEN=8192 dist-zip pause
Visual Studio Command Prompt (2010)命令行下啓動build.bat:等待 5-10 分鐘。在 NSIS主目錄下會躺着一個 zip 包,就是它了。 命令行