gpt4 book ai didi

c++ - 使用 Visual Studio 2019 和 cmake for x86 编译 pe-parse 库

转载 作者:行者123 更新时间:2023-12-01 15:03:43 32 4
gpt4 key购买 nike

我正在尝试构建 pe-parse图书馆做一些事情。我的桌面上安装了 Visual Studio 2019 和 cmake。 pe-parse库 git 说用下面的命令编译库。

# Compile 64-bit binaries with Visual Studio 2017
cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Release ..

# Compile 32-bit binaries with Visual Studio 2017
cmake -G "Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=Release ..

我只有 Visual Studio 2019,所以我用 cmake -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Release .. 编译.但是,库是为 64 位计算机编译的,所以如果我尝试在 x86 中使用它会显示该库是针对 x64 的,并且失败并显示以下消息。
1>main.obj : error LNK2019: unresolved external symbol "struct peparse::_parsed_pe * __cdecl peparse::ParsePEFromFile(char const *)" (?ParsePEFromFile@peparse@@YAPAU_parsed_pe@1@PBD@Z) referenced in function _main
1>lib\pe-parser-library.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
1>C:\Workspace\Windows\CPP\MalwareAnalysis\Debug\MalwareAnalysis.exe : fatal error LNK1120: 1 unresolved externals

我已经安装了 MSVC v141 - VS2107 C++ x64/x86 构建工具(v14.16) 但是 cmake -G "Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=Release ..在下面显示错误。
CMake Error at CMakeLists.txt:2 (project):
Generator

Visual Studio 15 2017

could not find any instance of Visual Studio.

我是否必须安装 Visual Studio 2017 才能为 x86 系统构建库?

最佳答案

根据文档,生成器 Visual Studio 16 2019不再默认 到 Win32 目标平台:

The default target platform name (architecture) is that of the host and is provided in the CMAKE_VS_PLATFORM_NAME_DEFAULT variable.



要在 64 位主机上为 Win32 构建项目,只需传递适当的 -A选项:
cmake -G "Visual Studio 16 2019" -A Win32 <other options>

的发电机上一个 Visual Studio 版本仍默认为 Win32。例如。生成器文档 Visual Studio 15 2017说:

The default target platform name (architecture) is Win32.

关于c++ - 使用 Visual Studio 2019 和 cmake for x86 编译 pe-parse 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59691483/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com