针对在STM32MP135x-DK上编译LVGL 9.1时遇到的DRM头文件缺失问题,以下是逐步解决方案:
确认环境变量生效:
执行以下命令,检查SDK的环境变量是否包含DRM头文件路径:
echo $CFLAGS
echo $LDFLAGS如果输出中未包含/usr/include/libdrm或相关路径,需手动添加。
手动指定头文件路径:
在编译命令或Makefile中显式添加DRM头文件路径:
CFLAGS += -I$SDK_SYSROOT/usr/include/libdrmlv_conf.h中确认以下配置:#define LV_USE_LINUX_DRM 1
#define LV_LINUX_DRM_CARD "/dev/dri/card0" // 根据实际设备节点调整
#define LV_USE_LINUX_FBDEV 0 // 禁用FBDEV避免冲突确认libdrm链接:
在编译命令或Makefile中添加-ldrm链接选项:
LDFLAGS += -ldrm验证SDK中的libdrm库:
检查SDK的库路径(如$SDK_SYSROOT/usr/lib)是否存在libdrm.so。
如果环境变量未正确传递,在CMake或Makefile中显式设置路径:
CFLAGS="-I$SDK_SYSROOT/usr/include/libdrm"
LDFLAGS="-L$SDK_SYSROOT/usr/lib -ldrm"
makeCONFIG_DRM=y
CONFIG_DRM_STM=y
CONFIG_DRM_STM_LTDC=y完整编译命令示例:
source $HOME/STM32MPU_workspace/Developer-Package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
cd ~/STM32MPU_workspace/Developer-Package/my_workspace/lv_port_linux/build
CFLAGS="-I$OECORE_TARGET_SYSROOT/usr/include/libdrm"
LDFLAGS="-ldrm"
cmake .. -DCMAKE_TOOLCHAIN_FILE=$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake
makemake命令后添加VERBOSE=1查看详细编译过程。如果问题仍未解决,建议查阅LVGL官方论坛或提交Issue,附上完整编译日志及环境配置细节。
举报
更多回帖