重新编译 NSIS

NSIS 源文件是由官方的 NSIS distribution 管理的,同时还有 开发快照。NSIS 发布的二进制文件是用 Microsoft Visual C++ 6.0 编译的。经检测,这个源文件也兼容于 Microsoft Visual C++ .NET 2002/2003 编译器。发布的 NSIS 包含有 Microsoft Visual C++ 6.0 工程文件,Microsoft Visual C++ .NET 2002/2003 可以自动将这些文件转换为新格式。

如果你没有 Microsoft Visual C++,那么你也可以下载免费的 .NET Framework SDK (需要运行于 Windows 2000/XP/Server 2003),它包含有最新的 Microsoft 编译器。这个 SDK 没有包含 Win32 API 头文件和库文件,因此你还应当下载最新的 Platform SDK 。 请查看 Microsoft 的文档以了解关于使用命令行编译器和连接器的信息。

你也可以用 MinGW、MSYS 或 Cygwin 来编译 NSIS,但是会导致执行文件头明显的增大。要使用 MinGW ,只需要简单的 make 就可以了。Borland C++ 或 Open Watcom C/C++ 应该也可以正常使用,但是可能要稍微更改一下 makefile。

自从 NSIS 2.01 之后,编译器 makensis 也可以在 POSIX 平台上被编译。POSIX 平台包括 Linux、BSD、Mac OS X 和其它。要编译 makensis 你首先要编译可执行头文件。这些工作可以按上面的方法在 Windows 里完成,或使用交叉的编译器 (HOWTO)。一旦可执行头文件编译完成,你必须复制 Source\exehead\Release- 的 .h 文件。这些 .h 文件在编译可执行头文件时自动生成。官方发布的 NSIS 源代码包含了这些 .h 文件,所以你只需要在 CVS 导出模块时手动编译。

当构建预编译可执行头文件 .h 文件时,你应该把 USE_PRECOMPILED_EXEHEADS 标记在 make 命令行里设为 1 。这将强制 makefile 忽略可执行头文件的编辑处理,即使这些 .h 文件看起来过时或当依赖条件丢失。make USE_PRECOMPILED_EXEHEADS=1对于 Microsoft Visual C++ 6.0 用户的重要提示: 你应当安装最新的 Platform SDK。因为 Microsoft Visual C++ 6.0 发布的库文件中有缺陷,如果不安装 Platform SDK,那么当使用 CopyFiles 命令时会导致系统崩溃,更多相关信息请查看 这个论坛主题。同时也强烈推荐安装Processor Pack 以减少安装程序的可执行头部。