visual studio 2017如何编译7zip源码?
How to compile 7zip source code in visual studio 2017?
完成 here 的教程后。我无法使用 lzma1900 SDK 生成可执行文件。
这是 powershell 的输出。
PS C:\Users\testbench\DownloadsZipSDK\CPP> "C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Auxiliary\Build\vcvars32.bat"
C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Auxiliary\Build\vcvars32.bat
PS C:\Users\testbench\DownloadsZipSDK\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
Studio17\Community\VC\Tools\MSVC.16.27023\bin\Hostx86\x86\link.EXE"'
: return code '0x450'
Stop.
我正在使用这个 nmake 版本和 ml.exe 版本:
C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.16.27023\bin\Hostx86\x86
我还安装了windows SDK。为什么当我 运行 那个 bat 脚本时它没有被加载?以及如何使用 visual studio 2017 编译最新的 lzma SDK ?
发布答案以供将来参考,以防有人需要查看:
7-Zip 的开发者提供了两个源代码。
- 7-Zip 应用程序。
- LZMA 算法在(C、C++、C#、java)中的实现。
可以使用位于
中的 makefile 为 windows 生成可执行文件
7z1900-src/CPP/7zip/makefile.
我在 2015 年使用了 MSBUILD commandpromt。(注意:另一种方法是 运行 vcvarsall.bat 然后执行“nmake”命令
如果您想了解 7Z 的工作原理,那么“Alone.dsw”就是您要找的。它在里面
7z1900-src/CPP/7zip/Bundles/Alone/Alone.dsw
您需要将“调试信息格式”更改为项目中的程序数据库/Zi 属性。它在 C/C++ -> 常规下。
希望对您有所帮助。
在项目 -> 属性 -> 配置属性 -> 清单工具 -> 输入和输出中关闭 嵌入清单 选项。将 Embed Manifest 的值更改为 No。 Find more
完成 here 的教程后。我无法使用 lzma1900 SDK 生成可执行文件。
这是 powershell 的输出。
PS C:\Users\testbench\DownloadsZipSDK\CPP> "C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Auxiliary\Build\vcvars32.bat"
C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Auxiliary\Build\vcvars32.bat
PS C:\Users\testbench\DownloadsZipSDK\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
Studio17\Community\VC\Tools\MSVC.16.27023\bin\Hostx86\x86\link.EXE"'
: return code '0x450'
Stop.
我正在使用这个 nmake 版本和 ml.exe 版本:
C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.16.27023\bin\Hostx86\x86
我还安装了windows SDK。为什么当我 运行 那个 bat 脚本时它没有被加载?以及如何使用 visual studio 2017 编译最新的 lzma SDK ?
发布答案以供将来参考,以防有人需要查看:
7-Zip 的开发者提供了两个源代码。
- 7-Zip 应用程序。
- LZMA 算法在(C、C++、C#、java)中的实现。
可以使用位于
中的 makefile 为 windows 生成可执行文件7z1900-src/CPP/7zip/makefile.
我在 2015 年使用了 MSBUILD commandpromt。(注意:另一种方法是 运行 vcvarsall.bat 然后执行“nmake”命令
如果您想了解 7Z 的工作原理,那么“Alone.dsw”就是您要找的。它在里面
7z1900-src/CPP/7zip/Bundles/Alone/Alone.dsw
您需要将“调试信息格式”更改为项目中的程序数据库/Zi 属性。它在 C/C++ -> 常规下。
希望对您有所帮助。
在项目 -> 属性 -> 配置属性 -> 清单工具 -> 输入和输出中关闭 嵌入清单 选项。将 Embed Manifest 的值更改为 No。 Find more