You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用自定义版本第三方库编译CMake项目中的wxWidgets

问题原因

你遇到的找不到pcre2_auto_possess.c、xmlparse.c等源文件的报错,本质是当前使用的wxWidgets源码缺失内置依赖的源代码:要么是你拉取git仓库时没有同步子模块,要么是下载的精简发行包未携带3rdparty、src/xxx下的第三方依赖源码,所以将依赖设为builtin时无法找到编译所需的源文件。

解决方案

你可以选择以下任意一种方式解决问题:

方案1:补全源码后使用内置依赖

如果希望将regex、expat、libtiff等剩余依赖设为builtin,需要先补全wxWidgets的依赖子模块:
在wxWidgets源码根目录执行命令:

git submodule update --init 3rdparty/pcre 3rdparty/expat src/tiff

子模块拉取完成后,保留原有wxUSE_REGEX=builtin、wxUSE_EXPAT=builtin、wxUSE_LIBTIFF=builtin配置即可正常编译,不会再报找不到源文件的错误。

方案2:将剩余依赖也改为使用自定义编译版本

和你处理zlib、libjpeg、libpng的逻辑一致,给剩余依赖也配置sys模式,传入你自己编译的库路径即可:

  • 处理正则依赖:添加参数-DwxUSE_REGEX=sys,同时传入-DPCRE2_LIBRARY=${你编译的pcre2库路径}、-DPCRE2_INCLUDE_DIR=${pcre2头文件路径}
  • 处理XML解析依赖:添加参数-DwxUSE_EXPAT=sys,同时传入-DEXPAT_LIBRARY=${你编译的expat库路径}、-DEXPAT_INCLUDE_DIR=${expat头文件路径}
  • 处理libtiff依赖:等你将libtiff加入外部项目后,将原有-DwxUSE_LIBTIFF=builtin改为-DwxUSE_LIBTIFF=sys,再传入-DTIFF_LIBRARY=${你编译的libtiff库路径}、-DTIFF_INCLUDE_DIR=${libtiff头文件路径}即可

额外注意事项

  1. 你当前配置中指定了CMAKE_BUILD_TYPE=Release但构建的是Debug版本,请注意各依赖库的编译类型要和wxWidgets的编译类型匹配,否则会出现链接错误。
  2. 你配置中写的MONOLITHIC=1未生效,wxWidgets的CMake单库编译参数为wxBUILD_MONOLITHIC,修改为-DwxBUILD_MONOLITHIC=1即可生成合并的单库文件。

内容的提问来源于stack exchange,提问作者rbaleksandar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 22:39:04