vs 7-zip sdk库的安装和使用 采用静态编译 详细步骤
时间: 2023-08-09 13:06:16 浏览: 246
IOS 静态库打包流程简化详细介绍
以下是在 Windows 环境下使用 VS 2019 和 7-Zip SDK 静态编译的详细步骤:
1. 下载 7-Zip SDK 的最新版本,解压缩到一个目录下,例如 C:\7z1900-sdk。
2. 打开 Visual Studio 2019,创建一个新的空的 Win32 控制台应用程序项目。
3. 在项目属性中,选择“所有配置”和“x64”平台,然后进行以下更改:
- 在“VC++ 目录”下的“包含目录”中添加 7-Zip SDK 的 Include 目录,例如 C:\7z1900-sdk\CPP\7zip\UI\Client。
- 在“VC++ 目录”下的“库目录”中添加 7-Zip SDK 的 Lib 目录,例如 C:\7z1900-sdk\CPP\7zip\UI\Client\BorlandCpp.
- 在“链接器”下的“输入”中添加以下库文件:
```
7zip.lib
7zxa.lib
LzmaDec.lib
LzmaEnc.lib
```
4. 创建一个新的源文件,例如 main.cpp,在其中编写使用 7-Zip SDK 的代码。
5. 在 main.cpp 中添加以下头文件:
```
#include "7zip/Archive/IArchive.h"
#include "7zip/IPassword.h"
#include "7zip/MyVersion.h"
```
6. 在 main.cpp 中添加以下代码,以创建一个 7-Zip 压缩文件:
```
#include "7zip/Archive/IArchive.h"
#include "7zip/IPassword.h"
#include "7zip/MyVersion.h"
int main()
{
CMyComPtr<IOutStream> outStream;
CreateOutFileStream(L"test.7z", &outStream);
CMyComPtr<IInStream> inStream;
CreateInFileStream(L"test.txt", &inStream);
CArchiveUpdateCallback callback;
callback.Init();
CArchiveUpdateOptions options;
options.ArcPath = L"test.7z";
options.UpdateCallback = &callback;
CObjectVector<CItemEx> items;
CItemEx item;
item.Name = L"test.txt";
item.Size = GetFileSize(L"test.txt");
item.Crc = CRC32(0, (const Byte *)"", 0);
items.Add(item);
CMyComPtr<IUpdateCallback2> updateCallback2;
callback.QueryInterface(IID_IUpdateCallback2, (void **)&updateCallback2);
CMyComPtr<IArchiveUpdateCallback> updateCallback;
updateCallback2.QueryInterface(IID_IArchiveUpdateCallback, (void **)&updateCallback);
HRESULT result = UpdateArchive(outStream, inStream, items.Size(), items, options, updateCallback);
return result == S_OK ? 0 : 1;
}
```
7. 在项目设置中,选择“生成”和“平台工具集”,然后选择“Visual Studio 2019 - Windows XP (v142_xp)”。
8. 在项目设置中,选择“C/C++”和“代码生成”,然后将“运行库”更改为“多线程 (/MT)”。
9. 在 Visual Studio 菜单中选择“生成”->“生成解决方案”来编译和生成可执行文件。
10. 在项目文件夹下找到生成的可执行文件,例如 Release 文件夹下的控制台应用程序.exe,将其复制到包含 7-Zip DLL 的文件夹下,例如 C:\7z1900-sdk\CPP\7zip\Bin。
11. 运行可执行文件来测试创建 7-Zip 压缩文件的功能。
以上就是使用 VS 2019 和 7-Zip SDK 静态编译的详细步骤。注意在使用时要遵循 7-Zip SDK 的许可协议。
阅读全文