遵循here的教程之后。我无法使用lzma1900 SDK生成可执行文件。
这是powershell的输出。
PS C:\Users\testbench\Downloads\7ZipSDK\CPP> "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat
PS C:\Users\testbench\Downloads\7ZipSDK\CPP> nmake NEW_COMPILER=1
MY_STATIC_LINK=1 Build.mak
Microsoft (R) Program Maintenance Utility Version 14.16.27030.1 Copyright (C) Microsoft Corporation. All rights reserved.
if not exist "o" mkdir "o"
if not exist "o/asm" mkdir "o/asm"
link -nologo -OPT:REF -OPT:ICF /LARGEADDRESSAWARE /FIXED:NO -out:o\
oleaut32.lib ole32.lib user32.lib advapi32.lib shell32.lib
LINK : fatal error LNK1104: cannot open file 'o\'
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86\link.EXE"'
: return code '0x450'
Stop.
我正在使用此nmake版本和ml.exe版本:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86
我还安装了Windows SDK。为什么在运行该bat脚本时未加载它?以及如何使用Visual Studio 2017编译最新的lzma SDK ?
答案 0 :(得分:0)
发布答案,以备将来参考:
7-Zip的开发人员提供了两个源代码。
一个人可以使用位于
中的makefile为Windows生成可执行文件7z1900-src / CPP / 7zip / makefile。
我在2015年使用了MSBUILD commandpromt。(注意:通过运行vcvarsall.bat然后执行“ nmake”命令来实现此目的的另一种方法
如果您想了解7Z的工作原理,则需要“ Alone.dsw”。在里面
7z1900-src / CPP / 7zip / Bundles / Alone / Alone.dsw
您将需要在项目属性中将“调试信息格式”更改为Program Database / Zi。它在C / C ++->常规下。
我希望它会有所帮助。