主线KWin编译环境搭建

文章介绍了如何在Ubuntu22.04LTS上搭建KWin主线的编译环境,由于KWin主线依赖Qt6和Kf6,而Ubuntu系统默认为Qt5和Kf5,因此需要手动配置。步骤包括安装基础软件,配置包含Qt6的源,安装常用工具和依赖包,以及按照特定顺序编译和安装KDE框架相关源码。
摘要由CSDN通过智能技术生成

KWin编译环境搭建

最新的KWin主线依赖Qt6和Kf6环境,而目前kde的系统镜像都是基于Qt5和Kf5的,所以无法编译KWin主线。在Qt5和Kf5的环境下安装Qt6和Kf6可能会产生很多依赖冲突,最好的解决办法是在不基于Qt和KF的系统(例如ubuntu)上手动搭建Qt6和Kf6的开发环境。

有些安装源里已经有了Qt6的包,所以为了节省时间, 我们首先配置上包含Qt6包的安装源,KWin编译时需要的Qt6的相关包直接通过apt install命令安装, 但是Kf6的包都需要我们自己编译。 安装源有些包时基于Qt5或者Kf5的,这些包最好不要安装,否则有可能出现冲突。

以下是配置步骤:

1. 安装ubuntu-2204-LTS

(1) Ubuntu系统上默认没有vim、ssh,这两个包比较常用,建议执行sudo apt install vim ssh安装一下

(2) 同时Ubuntu下默认使用的显示管理器为gdm,也可以替换成lightdm.执行sudo apt install lightdm命令安装lightdm同时在配置包时选择显示管理器为ligthdm

2. 配置安装源

修改/etc/apt/sources.list文件,修改完成后执行sudo apt update命令更新缓存。

# ubuntu list
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse

# neno list
deb [ trusted=yes ] https://archive.neon.kde.org/testing/ jammy main
deb-src [ trusted=yes ] https://archive.neon.kde.org/testing/ jammy main

3. 安装常用的工具

sudo apt install gcc g++ gdb make cmake

4. 安装依赖包

(1) 可以直接安装的包:
编译KWin时的依赖

breeze-dev cmake hwdata libcap-dev libdrm-dev libegl1-mesa-dev libepoxy-dev libfontconfig1-dev libfreetype6-dev libgbm-dev libice-dev libinput-dev liblcms2-dev libpipewire-0.3-dev libsm-dev libudev-dev libwayland-dev libx11-xcb-dev libxcb-composite0-dev libxcb-cursor-dev libxcb-damage0-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-shm0-dev libxcb-sync-dev libxcb-util-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-xtest0-dev libxcb1-dev libxcursor-dev libxcvt-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev pkg-config plasma-wayland-protocols wayland-protocols xwayland qt6-base-dev qt6-declarative-dev qt6-sensors-dev qt6-tools-dev qt6-wayland-dev-tools libqaccessibilityclient-qt6-dev

编译kf包的依赖

libboost-all-dev clang-format libxcb-res0-dev gperf libxcb-record0-dev libxml2-utils libxslt1-dev docbook-xsl qt6-svg-dev flex bison libqt6core5compat6-dev libphonon4qt6-dev libgpgmepp-dev libqt6shadertools6-dev libxcb-dpms0-dev libpam0g-dev libavcodec-dev libavutil-dev libavformat-dev libswscale-dev

(2) 需要下载源码编译安装的包

编译工具:
cmake make gcc g++
需要编译安装的包和源码地址如下(由于后面的包可能会依赖前面的包,所以需要按顺序编译安装:

包名源码地址
extra-cmake-modulesgit@invent.kde.org:frameworks/extra-cmake-modules.git
kconfiggit@invent.kde.org:frameworks/kconfig.git
kcoreaddonsgit@invent.kde.org:frameworks/kcoreaddons.git
kwindowsystemgit@invent.kde.org:frameworks/kwindowsystem.git
kactivitiesgit@invent.kde.org:frameworks/kactivities.git
kauthgit@invent.kde.org:frameworks/kauth.git
kcodecsgit@invent.kde.org:frameworks/kcodecs.git
kguiaddonsgit@invent.kde.org:frameworks/kguiaddons.git
ki18ngit@invent.kde.org:frameworks/ki18n.git
kwidgetsaddonsgit@invent.kde.org:frameworks/kwidgetsaddons.git
kconfigwidgetsgit@invent.kde.org:frameworks/kconfigwidgets.git
kcrashgit@invent.kde.org:frameworks/kcrash.git
kdbusaddonsgit@invent.kde.org:frameworks/kdbusaddons.git
kglobalaccelgit@invent.kde.org:frameworks/kglobalaccel.git
kidletimegit@invent.kde.org:frameworks/kidletime.git
karchivegit@invent.kde.org:frameworks/karchive.git
kdoctoolsgit@invent.kde.org:frameworks/kdoctools.git
kpackagegit@invent.kde.org:frameworks/kpackage.git
kiconthemesgit@invent.kde.org:frameworks/kiconthemes.git
kservicegit@invent.kde.org:frameworks/kservice.git
solidgit@invent.kde.org:frameworks/solid.git
kitemviewsgit@invent.kde.org:frameworks/kitemviews.git
kxmlguigit@invent.kde.org:frameworks/kxmlgui.git
kcmutilsgit@invent.kde.org:frameworks/kcmutils.git
kbookmarksgit@invent.kde.org:frameworks/kbookmarks.git
kcompletiongit@invent.kde.org:frameworks/kcompletion.git
kjobwidgetsgit@invent.kde.org:frameworks/kjobwidgets.git
sonnetgit@invent.kde.org:frameworks/sonnet.git
ktextwidgetsgit@invent.kde.org:frameworks/ktextwidgets.git
kdedgit@invent.kde.org:frameworks/kded.git
phonongit@invent.kde.org:libraries/phonon.git
knotificationsgit@invent.kde.org:frameworks/knotifications.git
kiogit@invent.kde.org:frameworks/kio.git
kirigamigit@invent.kde.org:frameworks/kirigami.git
plasma-frameworkgit@invent.kde.org:frameworks/plasma-framework.git
kdeclarativegit@invent.kde.org:frameworks/kdeclarative.git
atticagit@invent.kde.org:frameworks/attica.git
syndicationgit@invent.kde.org:frameworks/syndication.git
knewstuffgit@invent.kde.org:frameworks/knewstuff.git
kdecorationgit@invent.kde.org:plasma/kdecoration.git
kwaylandgit@invent.kde.org:frameworks/kwayland.git
layer-shell-qtgit@invent.kde.org:plasma/layer-shell-qt.git
libkscreengit@invent.kde.org:plasma/libkscreen.git
kscreengit@invent.kde.org:plasma/kscreen.git
kscreenlockergit@invent.kde.org:plasma/kscreenlocker.git
kpipewiregit@invent.kde.org:plasma/kpipewire.git
threadweaverit@invent.kde.org:frameworks/kpipewire.git
kitemmodelsgit@invent.kde.org:frameworks/kitemmodels.git
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只双鱼儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值