如何在Linux系统编译包含QtGraphicalEffects模块的Qt5.13.2?
解决QtGraphicalEffects模块缺失的编译配置方案
核心问题说明
QtGraphicalEffects是Qt Quick模块的附加组件,在Qt 5.x版本中并非基础库默认编译模块,且你的配置中-no-opengl参数会直接阻碍该模块编译——它依赖OpenGL(或Qt Quick渲染后端)提供着色器运行环境。
具体修改步骤
移除冲突参数并启用OpenGL支持
将配置中的-no-opengl替换为对应环境的OpenGL参数:- 桌面环境用:
-opengl desktop - 嵌入式环境用:
-opengl es2
若必须禁用OpenGL,可尝试-software-rendering替代,但部分着色器功能会失效。
- 桌面环境用:
显式指定编译QtGraphicalEffects
在configure参数中添加:-make qtgraphicaleffects你的现有配置仅跳过了
qtlocation,未影响Qt Quick核心模块,添加该参数即可强制编译目标模块。修改后的完整configure参数
基于你的原有配置调整后的命令:./configure -prefix /home/qt5.13.2-x86_64-noicu -release -xplatform linux-g++-64 -confirm-license -opensource -no-icu -ssl -openssl -openssl-runtime -no-fontconfig -no-harfbuzz -qt-zlib -qt-xcb -qpa xcb -feature-thread -opengl desktop -skip qtlocation -make qtgraphicaleffects -nomake examples -nomake tests -recheck-all XKBCOMMON_PREFIX="${}" XKBCOMMON_LIBS="-lxkbcommon" XKBCOMMON_X11_PREFIX="${}" XKBCOMMON_X11_LIBS="-lxkbcommon-x11 -Wl,-rpath-link=${}/lib:${}/lib:${}/lib" XCB_PREFIX="${}" XCB_LIBS="-lxcb -Wl,-rpath-link=${CONAN_BUILD_DIRS_LIBXAU}/lib" XCB_XKB_PREFIX="${}" XCB_XKB_LIBS="-lxcb-xkb -Wl,-rpath-link=${}/lib" -I"${}/include" -I"${}/include" CUPS_PREFIX="${}" CUPS_LIBS="-lcups -Wl,-rpath-link=${}/lib" -I"${}/include" -I"${}/include" OPENSSL_PREFIX="${}" OPENSSL_LIBS="-lssl -lcrypto -Wl,-rpath-link=${}/lib" -I"${}/include"
额外注意事项
- 编译前需确保系统已安装OpenGL开发库(如
libgl1-mesa-dev),否则-opengl desktop会配置失败 - 若环境无法支持OpenGL,QtGraphicalEffects的部分着色器效果将无法运行,建议改用纯QML实现的替代效果,或放弃该模块
内容的提问来源于stack exchange,提问作者RyCloud
相关产品推荐
相关产品推荐

