文档章节

Windows 下msvc2010编译 NSIS 2.46

bygreencn
 bygreencn
发布于 2013/11/28 18:58
字数 469
阅读 783
收藏 0

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

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

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

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

4、由于 NSIS 的 Menu 采用 wxWidgets 编写,因此去 wxWidgets 官方网站 http://www.wxwidgets.org/downloads/ 下载 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.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 包,就是它了。

© 著作权归作者所有

共有 人打赏支持
bygreencn
粉丝 13
博文 22
码字总数 7435
作品 0
武汉
程序员
Qt之打包发布(NSIS详解)

发布方式 Qt发布的时候,通常使用两种方式: 1、利用向导制作安装包:

china008
2014/05/12
0
0
NSIS脚本学习:弹出窗口MessageBox的使用方法详解

这几天准备系统性地学习一下NSIS脚本的编写。 NSIS脚本中的MessageBox,语法如下: MessageBox mboptionlist messagebox_text [/SD return] [return_check jumpto] [return_check_2 jumpto_...

北风其凉
2016/03/31
1K
0
初学QT Cteater 在win7下编译LINK错误,是配置原因么?

安装的QT版本:qt-windows-opensource-5.0.2-msvc201032opengl-x86-offline.exe qt-vs-addin-1.1.7.exe 写了个HelloQT的程序,一直都编译不出来,不过example里面的例子都可以正常运行。 根据...

杨华龙得五四是哪
2013/04/26
689
1
C++开发NSIS插件,实现NSIS脚本的加解密功能

之前要做一个Windows平台上的一个安装包,要求能接受自定义参数,而参数可能会经过编码加密,所以要求安装包能够对参数进行decode。但是NSIS脚本并没有这方面线程的库,而NSIS脚本进行大量的...

cardinalinux
2016/06/16
599
0
NSIS脚本学习:使用 LogicLib.nsh 实现基本流程控制结构

LogicLib.nsh 程序的三种基本结构包括:顺序结构、分支结构、循环结构。顺序结构是最基本的结构,本文主要说明了如何在NSIS脚本中写出分支结构和循环结构。 最基本的分支结构和循环结构可以用...

北风其凉
2016/04/09
499
0

没有更多内容

加载失败,请刷新页面

加载更多

【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
13分钟前
1
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
23分钟前
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
7
0
vm GC 日志 配置及查看

-XX:+PrintGCDetails 打印 gc 日志 -XX:+PrintTenuringDistribution 监控晋升分布 -XX:+PrintGCTimeStamps 包含时间戳 -XX:+printGCDateStamps 包含时间 -Xloggc:<filename> 可以将数据保存为......

Canaan_
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部