wxWidgets构建因缺失wxxml.lib报错的解决方案问询
wxWidgets XML依赖说明
wxWidgets封装的wxxml.lib是自身的XML组件库,底层默认使用Expat XML解析库,master分支默认将Expat作为内置第三方库管理,无需额外安装系统级XML依赖。
ExternalProject场景编译配置修复方案
- 补全CMake配置参数,仅开启
wxUSE_XML=ON不足,需同时开启wxUSE_LIBEXPAT=ON,该参数控制是否编译内置Expat依赖,若仅开XML开关且找不到系统Expat,会直接跳过wxxml模块编译,导致链接时缺失对应库文件。 - 若使用的master分支源码未携带3rdparty目录下的Expat源码,需添加
wxBUILD_THIRDPARTY=ON参数,触发CMake自动拉取缺失的第三方依赖源码,也可手动将Expat源码提前放入wxWidgets源码的3rdparty/expat目录。 - 在ExternalProject的CMAKE_ARGS配置中补全所有相关参数,参考配置片段如下,保留你原有仓库、分支、安装路径等配置即可:
ExternalProject_Add(wxWidgets # 保留你原有的GIT_REPOSITORY、GIT_TAG、源码路径等配置 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/deps/install -DCMAKE_GENERATOR_PLATFORM=x64 -DwxUSE_XML=ON -DwxUSE_LIBEXPAT=ON -DwxBUILD_THIRDPARTY=ON -DwxBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} )
- 报错出现在wxqa模块链接阶段的话,可添加
-DwxUSE_QA=OFF参数关闭测试模块,避免非必要依赖阻塞主功能编译。
其他功能配置参考(含WebView)
- WebView组件在Windows环境下默认依赖Edge WebView2运行时,编译时添加
-DwxUSE_WEBVIEW=ON参数即可,CMake会自动检测系统中的WebView2 SDK,也可提前将SDK放入3rdparty目录实现内置编译。 - 所有可选组件的开关定义可查看wxWidgets源码下的
build/cmake/options.cmake文件,依赖拉取逻辑可查看build/cmake/dependencies.cmake文件,可根据需求自行调整对应开关。
内容的提问来源于stack exchange,提问作者rbaleksandar
相关产品推荐
相关产品推荐

