rk3288 buildroot 编译webkit
rk3288使用buildroot ,配置文件中添加:BR2_PACKAGE_QT5WEBKIT=y
编译报错:(许多链接错误)
WebCore::Extensions3DOpenGLES::getExtensions()':
2025-12-15T15:31:32 Extensions3DOpenGLES.cpp:(.text._ZN7WebCore20Extensions3DOpenGLES13getExtensionsEv+0xc): undefined reference to `glGetString'
github上找到一个一模一样的错误,但打的patch 当前代码都有。
后来发现时缺少libmali.so库的链接,在
/buildroot/package/qt5/qt5webkit 路径下添加
0066-Fix-Extensions3DOpenGLES_cpp-undefined-reference-to-glGetString.patch
1 --- a/Source/WebCore/CMakeLists.txt 2025-12-11 15:53:33.669102826 +0800
2 +++ b/Source/WebCore/CMakeLists.txt 2025-12-11 15:54:54.694239391 +0800
3 @@ -3822,6 +3822,11 @@
4
5 target_link_libraries(WebCore ${WebCore_LIBRARIES})
6
7 +set(WEBKIT_MALI_LIBS
8 + ${CMAKE_SYSROOT}/usr/lib/libmali.so
9 +)
10 +target_link_libraries(WebCore ${WEBKIT_MALI_LIBS})
11 +
12 if (SHARED_CORE)
13 set_target_properties(WebCore PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
14 install(TARGETS WebCore DESTINATION "${LIB_INSTALL_DIR}")
可正确编译。
制作成工具链,编译qt程序,继续报错
project error: unknown module s in QT: webkitwidgets
怀疑是webkit 安装后qmake 命令无法找到相关的库。
unihmi@d440d80d9cc4:~/rk3288_linux_5.10_240321/buildroot/output/rockchip_rk3288_bl_metro/host$ find -name *.pri
./arm-buildroot-linux-gnueabihf/sysroot/usr/mkspecs/modules/qt_lib_webkitwidgets.pri
./arm-buildroot-linux-gnueabihf/sysroot/usr/mkspecs/modules/qt_lib_webkitwidgets_private.pri
./arm-buildroot-linux-gnueabihf/sysroot/usr/mkspecs/modules/qt_lib_webkit.pri
./arm-buildroot-linux-gnueabihf/sysroot/usr/mkspecs/modules/qt_lib_webkit_private.pri
将这个文件拷贝到
/home/unihmi/rk3288_linux_5.10_240321/buildroot/output/rockchip_rk3288_bl_metro/host/mkspecs/modules
将qt_lib_webkitwidgets.pri, qt_lib_webkit.pri 内容修改为
1 QT.webkit.VERSION = 5.212.0
2 QT.webkit.MAJOR_VERSION = 5
3 QT.webkit.MINOR_VERSION = 212
4 QT.webkit.PATCH_VERSION = 0
5 QT.webkit.name = QtWebKit
6 QT.webkit.module = Qt5WebKit
7 QT.webkit.DEFINES = QT_WEBKIT_LIB
8 QT.webkit.includes = $$QT_MODULE_INCLUDE_BASE $$QT_MODULE_INCLUDE_BASE/QtWebKit
9 QT.webkit.private_includes =
10 QT.webkit.libs = $$QT_MODULE_LIB_BASE
11 QT.webkit.rpath = "/usr/lib"
12 QT.webkit.depends = core gui network
13 QT.webkit.run_depends = multimedia sensors positioning qml quick core_private gui_private
14 QT.webkit.bins = $$QT_MODULE_BIN_BASE
15 QT.webkit.libexec =
16 QT.webkit.plugins =
17 QT.webkit.imports =
18 QT.webkit.qml =
19 QT.webkit.frameworks =
20 QT.webkit.module_config = v2
21 QT_MODULES += webkit
22 QMAKE_LIBS_PRIVATE +=
23 QMAKE_RPATHDIR += /usr/lib
修改了8行,10行,14行。
1 QT.webkitwidgets.VERSION = 5.212.0
2 QT.webkitwidgets.MAJOR_VERSION = 5
3 QT.webkitwidgets.MINOR_VERSION = 212
4 QT.webkitwidgets.PATCH_VERSION = 0
5 QT.webkitwidgets.name = QtWebKitWidgets
6 QT.webkitwidgets.module = Qt5WebKitWidgets
7 QT.webkitwidgets.DEFINES = QT_WEBKITWIDGETS_LIB
8 QT.webkitwidgets.includes = $$QT_MODULE_INCLUDE_BASE $$QT_MODULE_INCLUDE_BASE/QtWebKitWidgets
9 QT.webkitwidgets.private_includes =
10 QT.webkitwidgets.libs = $$QT_MODULE_LIB_BASE
11 QT.webkitwidgets.rpath = "/usr/lib"
12 QT.webkitwidgets.depends = core gui network widgets webkit
13 QT.webkitwidgets.run_depends = multimedia sensors positioning qml quick core_private gui_private widgets_private opengl printsupport multimediawidgets
14 QT.webkitwidgets.bins = $$QT_MODULE_BIN_BASE
15 QT.webkitwidgets.libexec =
16 QT.webkitwidgets.plugins =
17 QT.webkitwidgets.imports =
18 QT.webkitwidgets.qml =
19 QT.webkitwidgets.frameworks =
20 QT.webkitwidgets.module_config = v2
21 QT_MODULES += webkitwidgets
22 QMAKE_LIBS_PRIVATE +=
23 QMAKE_RPATHDIR += /usr/lib
修改了8行,10行,14行。
浙公网安备 33010602011771号