在YOCTO Kirkstone为i.MX6编译WPEBackend-rdk时遇Wayland构建错误
解决Yocto Kirkstone平台i.MX6编译WPEBackend-rdk的Wayland依赖问题
编译报错
Could NOT find Wayland (missing: WAYLAND_INCLUDE_DIRS)
变量状态
为空的变量
- WAYLAND_INCLUDE_DIRS
- WAYLAND_CFLAGS
- WAYLAND_CFLAGS_OTHER
- WAYLAND_LDFLAGS_OTHER
已赋值的变量
- WAYLAND_FOUND: 1
- WAYLAND_LIBRARIES:
wayland-client;wayland-server - WAYLAND_LINK_LIBRARIES:
/[build_folders]//work/cortexa9t2hf-neon-oe-linux-gnueabi/wpebackend-rdk/1.20221201-r0/recipe-sysroot/usr/lib/libwayland-client.so;/[build_folders]//work/cortexa9t2hf-neon-oe-linux-gnueabi/wpebackend-rdk/1.20221201-r0/recipe-sysroot/usr/lib/libwayland-server.so - WAYLAND_LIBRARY_DIRS:
[build_folders]/work/cortexa9t2hf-neon-oe-linux-gnueabi/wpebackend-rdk/1.20221201-r0/recipe-sysroot/usr/lib - WAYLAND_LDFLAGS:
-L/[build_folders]//work/cortexa9t2hf-neon-oe-linux-gnueabi/wpebackend-rdk/1.20221201-r0/recipe-sysroot/usr/lib;-lwayland-client;-lwayland-server
已知配置
- PREFERRED_PROVIDER_virtual/wpebackend = "wpebackend-rdk"
- 使用配方:
wpebackend-rdk_1.20221201.bb - 源码分支:
master
解决步骤
1. 补全Wayland依赖并重建
确保wpebackend-rdk_1.20221201.bb中添加完整的Wayland依赖:
DEPENDS += "wayland wayland-native"
若已添加,清理Wayland构建缓存后重新构建:
bitbake -c cleansstate wayland bitbake wayland
2. 手动传入CMake变量
在配方中强制指定Wayland头文件路径和编译参数:
EXTRA_OECMAKE += " \ -DWAYLAND_INCLUDE_DIRS=${RECIPE_SYSROOT}/usr/include \ -DWAYLAND_CFLAGS=-I${RECIPE_SYSROOT}/usr/include \ "
3. 验证Sysroot完整性
检查${RECIPE_SYSROOT}/usr/include/wayland目录是否存在,且包含wayland-client.h等核心头文件。若缺失,说明Wayland包未正确安装,需排查Wayland自身配方的构建日志。
4. 指定CMake模块路径
若WPEBackend-rdk的CMake无法找到Wayland模块,在配方中添加模块路径:
EXTRA_OECMAKE += " \ -DCMAKE_MODULE_PATH=${RECIPE_SYSROOT}/usr/share/cmake/Modules \ "
5. 切换适配分支
master分支可能与Kirkstone的CMake版本兼容性不佳,尝试切换到对应版本的稳定分支:
SRC_URI = "git://github.com/WebPlatformForEmbedded/WPEBackend-rdk.git;branch=1.20221201"
内容的提问来源于stack exchange,提问作者user17966221
相关产品推荐
相关产品推荐

