文档章节

Windows 下msvc2010编译 NSIS 2.46

bygreencn
 bygreencn
发布于 2013/11/28 18:58
字数 469
阅读 776
收藏 0
点赞 0
评论 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
博文 20
码字总数 7435
作品 0
武汉
程序员
Qt之打包发布(NSIS详解)

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

china008 ⋅ 2014/05/12 ⋅ 0

NSIS脚本学习:弹出窗口MessageBox的使用方法详解

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

北风其凉 ⋅ 2016/03/31 ⋅ 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 ⋅ 1

C++开发NSIS插件,实现NSIS脚本的加解密功能

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

cardinalinux ⋅ 2016/06/16 ⋅ 0

NSIS脚本学习:使用 LogicLib.nsh 实现基本流程控制结构

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

北风其凉 ⋅ 2016/04/09 ⋅ 0

VB.NET 自动打包程序

因为每次将编译好的程序提交时都要花费很多时间用来打包,因此我需要有一个让程序自动完成这些琐碎的工作。 首先说一下我的目标。我的C#程序(在本文中暂时称作Example.exe)编译后暂时存放在...

北风其凉 ⋅ 2015/10/14 ⋅ 0

NSIS学习笔记(以Qt4程序打包为例)

一个Qt4程序安装(发布)后它应该有如下的结构(可参考 Qt 程序在 windows 下的发布 ): |-- sample.exe|-- QtCore4.dll|-- QtGui4.dll|-- imageformats/| |-- qjpeg4.dll 接下来我们使用nsis,...

晨曦之光 ⋅ 2012/05/08 ⋅ 0

Qt 5.0.2 静态编译的base release库

编译参数如下: configure -release -static -platform win32-msvc2010 -qt-zlib -qt-libpng -qt-libjpeg -qt-sql-sqlite -plugin-sql-sqlite -qt-style-windows -qt-style-windowsxp -qt-sty......

木头r ⋅ 2013/05/04 ⋅ 0

MyEclipse中调试Tomcat

一、下载、安装、配置 1、 JDK 下载oracle或者IBM JDK 1.6版本 2、 ANT http://ant.apache.org 3、 Myeclipse http://www.eclipse.org/downloads 4、 安装这里不再详细说!Tomcat的运行需要用...

小泥巴1024 ⋅ 2012/11/06 ⋅ 2

NSIS 3.0 发布,Windows 安装程序制作工具

NSIS 3.0 发布了。 NSIS (Nullsoft Scriptable Install System) 是一个专业开源的制作 windows 安装程序的工具。 NSIS 3.0 配备了可选的Unicode支持,仍然适用于Windows的不同版本,支持 Wi...

oschina ⋅ 2016/08/09 ⋅ 9

没有更多内容

加载失败,请刷新页面

加载更多

下一页

C++内存映射文件居然是这样?!

内存映射文件大家都时不时听过,但它到底是个什么?赶紧来看看吧 内存映射文件到底是干嘛的呢?让我们先来思考下面几个问题: 如果您想读的内容大于系统分配的内存块怎么办?如果您想搜索的字...

柳猫 ⋅ 31分钟前 ⋅ 0

MySQL 数据库设计总结

规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节...

OSC_cnhwTY ⋅ 今天 ⋅ 0

多线程(四)

线程池和Exector框架 什么是线程池? 降低资源的消耗 提高响应速度,任务:T1创建线程时间,T2任务执行时间,T3线程销毁时间,线程池没有或者减少T1和T3 提高线程的可管理性。 线程池要做些什...

这很耳东先生 ⋅ 今天 ⋅ 0

使用SpringMVC的@Validated注解验证

1、SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 [java] view plain copy edit.userna...

瑟青豆 ⋅ 今天 ⋅ 0

19.压缩工具gzip bzip2 xz

6月22日任务 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具 6.1 压缩打包介绍: linux中常见的一些压缩文件 .zip .gz .bz2 .xz .tar .gz .tar .bz2 .tar.xz 建立一些文...

王鑫linux ⋅ 今天 ⋅ 0

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 今天 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 今天 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 今天 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 今天 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部