构建x64 NSIS(使用VS2012)

问题描述 投票:0回答:1

我正在创建应用程序的纯x64版本。为了做到这一点,我还需要一个x64安装程序。我已经在线阅读了NSIS代码确实支持x64,但是由于它们不分发我需要从源代码(包括所有插件/等)中构建的x64版本。

我已经能够使用Python 2.7 / SCons 3.1.1 / VS 2012 / Zlib 1.2.7从源代码为x86构建NSIS(v3.0.4)。

scons ZLIB_W32=C:\Source\zlib-1.2.7

但是当我将TARGET_ARCH = amd64添加到scons命令时,

scons ZLIB_W32=C:\Source\zlib-1.2.7 TARGET_ARCH=amd64

这不起作用。最初它可以构建,但是由于zlib仍然是x86而没有链接。

C:\Source\zlib-1.2.7\lib\zdll.lib : warning LNK4272: library machine type 'x86' conflicts with target machine type 'x64'

但是,将zlib1.dll(使用VS2012)重建为x64(dumpbin确认了这一点)

我现在收到一个找不到zlib的错误

scons ZLIB_W32=C:\Source\zlib-1.2.7 TARGET_ARCH=amd64
scons: Reading SConscript files ...
WARNING: VER_PACKED not set, defaulting to 0x03003666!
Delete("nsis-18-Nov-2019.cvs")
Delete(".instdist")
Delete(".test")
Using Microsoft tools configuration (14.2)
Checking for memset requirement... (cached) yes
Checking for memcpy requirement... (cached) yes
Checking for C library gdi32... (cached) yes
Checking for C library user32... (cached) yes
Checking for C library pthread... (cached) no
Checking for C library iconv... (cached) no
Checking for C library shlwapi... (cached) yes
Checking for C library oleaut32... (cached) yes
Checking for C library version... (cached) yes
Checking for C library zdll... no
Checking for C library z... no
zlib (win32) is missing!

注意,我已经确保目录结构在x64构建中匹配,以便存在以下文件:

C:\Source\zlib-1.2.7\zlib1.dll
C:\Source\zlib-1.2.7\lib\zlib1.lib
C:\Source\zlib-1.2.7\include\zconf.h
C:\Source\zlib-1.2.7\include\zlib.h

我确实告诉过我要让scons查找x86 zlib(因此ZLIB_W32中的W32),但是我没有在-h输出中看到告诉scons寻找x64 zlib的选项。

我想念什么?

visual-studio-2012 nsis zlib scons
1个回答
0
投票

我有

\zlib1.dll
\include\zconf.h
\include\zlib.h
\lib\libzdll.a
\lib\zdll.lib
\lib\zlib.lib

您可以获得NSIS here的预构建zlib。

过去,我实际上曾经使用过Process Monitor来确定SCons正在寻找哪个文件,可悲的是,这似乎是最快的查找方法。

© www.soinside.com 2019 - 2024. All rights reserved.