如何在Visual Studio中安装libxml++?nmake能否识别vcpkg包?
解决libxmlplusplus在MSVC下编译时找不到msvc_recommended_pragmas.h的问题
核心原因
msvc_recommended_pragmas.h是glib库为MSVC编译提供的头文件,并非libxml2的文件。你的编译环境没有正确识别vcpkg安装的glib依赖路径,导致nmake找不到该文件。
解决步骤
1. 配置vcpkg环境变量
nmake不会自动识别vcpkg的包路径,需手动指定依赖路径:
- 先执行vcpkg全局集成(仅需一次):
vcpkg integrate install - 若集成后仍无效,在编译前手动设置环境变量(替换为你的vcpkg路径和目标架构,比如
x64-windows):
注意:glib的头文件嵌套在子目录中,必须将这些路径都加入INCLUDE。set INCLUDE=C:\vcpkg\installed\x64-windows\include;C:\vcpkg\installed\x64-windows\include\glib-2.0;C:\vcpkg\installed\x64-windows\lib\glib-2.0\include;%INCLUDE% set LIB=C:\vcpkg\installed\x64-windows\lib;%LIB%
2. 修改Makefile.vc的依赖配置
打开MSVC_NMake\Makefile.vc,调整INCLUDES和LIBS变量:
- 找到
INCLUDES行,添加vcpkg的依赖路径:INCLUDES = ..\libxml++ C:\vcpkg\installed\x64-windows\include C:\vcpkg\installed\x64-windows\include\glib-2.0 C:\vcpkg\installed\x64-windows\lib\glib-2.0\include - 找到
LIBS行,添加vcpkg的库路径:LIBS = C:\vcpkg\installed\x64-windows\lib
3. 确认依赖完整性
用vcpkg命令检查已安装包是否完整且架构匹配:
vcpkg list
确保glib:x64-windows、glibmm:x64-windows、libxml2:x64-windows均已安装(架构需与编译目标一致,如x86对应x86-windows)。
4. 重新执行编译
配置完成后,重新运行nmake命令:
nmake /f Makefile.vc CFG=release
额外说明
- vcpkg包不会自动被nmake识别,必须通过环境变量或修改Makefile的方式指定依赖路径。
- 优先解决依赖问题而非重写配置解析逻辑,libxmlplusplus的封装能节省大量开发和维护成本。
内容的提问来源于stack exchange,提问作者Aleksandar Demić
相关产品推荐
相关产品推荐

