LVGL源码官方路径介绍
| 名称 | 仓库地址 | 描述 |
|---|---|---|
| lvgl | https://github.com/lvgl/lvgl.git | 包含了LVGL图形界面控件的源码以及少量例程 |
| lv_drivers | https://github.com/lvgl/lv_drivers.git | 包含了驱动LVGL图形界面的驱动接口源代码 |
| lv_demos | https://github.com/lvgl/lv_demos.git | LVGL的例程 |
| lv_port_linux_frame_buffer | https://github.com/lvgl/lv_port_linux_frame_buffer.git | 适配有frame buffer的linux系统的接口 |
1.新建一个存放lvgl源码目录
jamon@ubuntu:~$ mkdir lvgl
jamon@ubuntu:~$ cd lvgl
-
进入目录使用git命令下载源码
jamon@ubuntu:~/lvgl git clone https://github.com/lvgl/lvgl.git jamon@ubuntu:~/lvgl git clone https://github.com/lvgl/lv_drivers.git
jamon@ubuntu:~/lvgl git clone https://github.com/lvgl/lv_demos.git jamon@ubuntu:~/lvgl git clone https://github.com/lvgl/lv_port_linux_frame_buffer.git
源码下载后,目录结构如下: 
- 编译lvgl源码为动态库
修改lvgl源码目录下CMakefile.txt文件,添加如下内容:
set(CMAKE_C_COMPILER "aarch64-none-linux-gnu-gcc")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
set(CMAKE_INSTALL_PREFIX "/home/jamon/workspace/test_app/lvgl/lv_port_linux-release-v8.3/lvgl/install") #安装路径
修改后内容如下:

修改配置文件env_support/cmake/custom.cmake,编译成动态库:

- 编译lv_drivers源码为动态库
(1).拷贝lv_drivers目录下的lv_drv_conf_template.h到上层lvgl目录下,并命名为lv_drv_conf.h
(2).修改CMakeLists.txt文件,修改后完整内容如下:
cmake_minimum_required(VERSION 3.12.4)
project(lv_drivers HOMEPAGE_URL https://github.com/lvgl/lv_drivers/)
# Option to build as shared library (as opposed to static), default: OFF
option(BUILD_SHARED_LIBS "Build shared as library (as opposed to static)" ON)
# 设置编译器、编译参数、安装路径
set(CMAKE_C_COMPILER "aarch64-none-linux-gnu-gcc")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
set(CMAKE_INSTALL_PREFIX "/home/jamon/workspace/test_app/lvgl/lv_port_linux-release-v8.3/lv_drivers/install") #安装路径
file(GLOB_RECURSE SOURCES ./*.c)
if (BUILD_SHARED_LIBS)
add_library(lv_drivers SHARED ${SOURCES})
else()
add_library(lv_drivers STATIC ${SOURCES})
endif()
add_library(lvgl_drivers ALIAS lv_drivers)
add_library(lvgl::drivers ALIAS lv_drivers)
target_include_directories(lv_drivers SYSTEM PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(lv_drivers SYSTEM PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../) # 添加包含头文件路径
find_package(PkgConfig)
pkg_check_modules(PKG_WAYLAND wayland-client wayland-cursor wayland-protocols xkbcommon)
target_link_directories(lv_drivers PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../lvgl/install/lib) # 添加lvgl库的路径
target_link_libraries(lv_drivers PUBLIC lvgl ${PKG_WAYLAND_LIBRARIES})
if("${LIB_INSTALL_DIR}" STREQUAL "")
set(LIB_INSTALL_DIR "lib")
endif()
if("${INC_INSTALL_DIR}" STREQUAL "")
set(INC_INSTALL_DIR "include/lvgl/lv_drivers")
endif()
install(
DIRECTORY "${CMAKE_SOURCE_DIR}/"
DESTINATION "${CMAKE_INSTALL_PREFIX}/${INC_INSTALL_DIR}/"
FILES_MATCHING
PATTERN "*.h"
PATTERN ".git*" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
PATTERN "docs" EXCLUDE
PATTERN "lib" EXCLUDE
PATTERN "install" EXCLUDE) # 安装时跳过install目录,防止.h文件循环安装
file(GLOB LV_DRIVERS_PUBLIC_HEADERS "${CMAKE_SOURCE_DIR}/lv_drv_conf.h")
set_target_properties(
lv_drivers
PROPERTIES OUTPUT_NAME lv_drivers
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
PUBLIC_HEADER "${LV_DRIVERS_PUBLIC_HEADERS}")
install(
TARGETS lv_drivers
ARCHIVE DESTINATION "${LIB_INSTALL_DIR}"
LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
RUNTIME DESTINATION "${LIB_INSTALL_DIR}"
PUBLIC_HEADER DESTINATION "${INC_INSTALL_DIR}")