zlgopen / awtk-linux-fb

awtk port for linux framebuffer
110 stars 49 forks source link

使用DRM,编译报错 #96

Closed WeSrc-Yin closed 2 years ago

WeSrc-Yin commented 2 years ago

修改awtk_config.py 为:LCD_DEVICES='drm',使用DRM来显示UI,编译报错:

`awtk-port/lcd_linux/lcd_linux_drm.c:41:10: fatal error: xf86drm.h: No such file or directory

include

      ^~~~~~~~~~~

compilation terminated. scons: *** [awtk-port/lcd_linux/lcd_linux_drm.o] Error 1`

但实际上我的系统里面是有这个文件的: /usr/include/xf86drm.h

请问是我还有什么地方修改得不对吗?@李老师

WeSrc-Yin commented 2 years ago

搞了半天,现在不报头文件不存在的错误,报找不到libdrm... gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: cannot find -ldrm

sohide commented 2 years ago

交叉编译的时候,不能看host系统的头文件和lib,应该检查一下交叉编译环境(文件夹)是否带有drm库 比如你的host是ubuntu pc版,这个系统里带的drm库是不能直接用到交叉编译器里面的

WeSrc-Yin commented 2 years ago

嗯,这个我知道,我在网上下载了libdrm源码,并且交叉编译成功了;然后,修改awtk_config.py,指定头文件和库的位置,如下:

指定libdrm库的位置,../../output/lib/里面有我使用交叉编译生成的drm库

OS_LIBPATH+=[joinPath(TK_LINUX_FB_ROOT, '../../output/lib/')] OS_LIBS = ['drm']+OS_LIBS

指定drm的头文件位置:

OS_FLAGS=OS_FLAGS + ' -DWITH_LINUX_DRM=1 -I../../output/include -I../../output/include/libdrm '

但还是报找不到libdrm。