vcpkg 安装
https://github.com/microsoft/vcpkg.git
.\bootstrap-vcpkg.bat
vcpkg --version
参考:Windows安装vcpkg教程(VS2022)
protocbuf 安装与编译
vcpkg install grpc:x64-windows
protocbuf 安装与编译
vcpkg install protobuf protobuf:x64-windows
安装后,您可以在文件夹 <vcpkg_installed_path>\packages 下的 vcpkg 目录中找到已安装的软件包。 为了使软件包在系统范围内可用,您需要使用命令:
vcpkg integrate install
报错汇总
- 错误 LNK2001 无法解析的外部符号 __imp_realloc
`__imp_realloc` 是一个内部符号,它关联到 C 运行时库中的 `realloc` 函数。这个函数用于更改先前分配的内存块的大小。根据搜索结果,`__imp_realloc` 符号包含在以下库文件中:
- `msvcrt.lib`:这是 Visual Studio 提供的 C 运行时库的动态链接库版本,通常包含在 Visual Studio 的安装中,并且包含了 `realloc` 函数的实现。
如果你在项目中遇到了 `__imp_realloc` 无法解析的外部符号错误,你需要确保你的项目配置正确地包含了这个库文件的路径。这通常在 Visual Studio 项目的链接器设置中完成。以下是一些可能的解决步骤:
1. **确认运行时库设置**:确保你的项目使用的是正确的运行时库设置。如果使用 `/MD` 或 `/MDd` 选项,应链接到 `msvcrt.lib`;如果使用 `/MT` 或 `/MTd` 选项,应链接到 `libcmt.lib`。
2. **添加库依赖项**:在项目的“链接器”->“输入”->“附加依赖项”中添加 `msvcrt.lib`。
3. **包含头文件**:确保你已经正确地包含了声明 `realloc` 函数的头文件,通常是 `<stdlib.h>`。
4. **确认平台和配置**:确保你的项目和库使用的是相同的平台(如 x86 或 x64)和配置(如 Debug 或 Release)。
5. **使用 `#pragma comment(lib, "library.lib")`**:在你的源文件中使用 `#pragma comment(lib, "msvcrt.lib")` 来显式地告诉编译器链接到特定的库文件。
通过上述步骤,你应该能够解决 `__imp_realloc` 相关的链接错误。如果问题依然存在,可能需要更详细地检查代码和项目配置,或者寻求社区的帮助。