编译webkit-gtk 2.30.4时遇libfreetype库查找失败问题求助
交叉编译WebKit-GTK 2.30.4时Freetype库找不到的原因
操作场景
执行的CMake交叉编译命令:
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DPORT=GTK -DCMAKE_CXX_COMPILER=/usr/bin/arm-linux-gnueabihf-g++-10 -DCMAKE_C_COMPILER=/usr/bin/arm-linux-gnueabihf-gcc-10
报错信息
CMake Error at /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Freetype (missing: FREETYPE_LIBRARY) (found suitable version
"2.13.2", minimum required is "2.4.2")
Call Stack (most recent call first):
/usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.28/Modules/FindFreetype.cmake:162 (find_package_handle_standard_args)
Source/cmake/WebKitFindPackage.cmake:104 (_find_package)
Source/cmake/OptionsGTK.cmake:38 (find_package)
Source/cmake/WebKitCommon.cmake:58 (include)
CMakeLists.txt:173 (include)
已尝试操作
- 已安装系统自带的
libfreetype-dev和libfreetype6(随libcairo2依赖安装) - 尝试卸载
libfreetype-dev后,因libcairo2依赖限制,不得不重新安装
核心原因
- 架构不匹配:你用的是ARM交叉编译器,但当前安装的
libfreetype-dev/libfreetype6是主机x86架构的库,CMake找不到适配ARM架构的库文件,因此报missing: FREETYPE_LIBRARY。 - 交叉编译搜索路径未指定:CMake默认搜索系统标准路径(如
/usr/lib、/usr/include),这些路径下只有x86版本的Freetype库,没有ARM版本的库文件,无法满足交叉编译需求。 - 主机依赖锁死x86版本库:
libcairo2是主机系统的必备依赖,它依赖x86版本的Freetype库,所以你无法卸载该版本,这也说明主机的Freetype库完全不适用于你的ARM交叉编译场景。
内容的提问来源于stack exchange,提问作者mbappe
相关产品推荐
相关产品推荐

