编译Linux Mint Cinnamon可引导光盘镜像(ISO)及解决cjs-1.0依赖缺失问题
解决Cinnamon构建中cjs-1.0依赖未找到的问题
我在WSL环境下构建桌面环境源码时也碰到过类似的依赖坑,系统默认安装的包往往只带运行时文件,缺少构建必需的头文件和配置信息。针对你的情况,可以按以下步骤逐一排查解决:
1. 安装CJS的开发包
你安装的cjs是运行时包,但Meson构建需要的是开发文件(头文件、pkg-config配置),这类文件通常在单独的-dev包中。在Ubuntu 20.04(你的系统版本)里,对应的包是libcjs-dev,执行以下命令安装:
sudo apt update && sudo apt install libcjs-dev
安装完成后重新运行meson build试试。
2. 手动验证pkg-config能否识别cjs-1.0
如果安装开发包后仍报错,先手动检查pkg-config是否能找到这个依赖:
pkg-config --cflags --libs cjs-1.0
- 如果命令返回正常的编译/链接参数,说明依赖没问题,大概率是Meson缓存导致的,删除build目录重新构建即可:
rm -rf build && meson build - 如果命令报错“Package cjs-1.0 was not found”,可能是pkg-config搜索路径缺失。如果之前手动安装过CJS到
/usr/local这类非标准目录,可以临时添加路径:
再重新验证和构建。export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
3. 从源码构建匹配版本的CJS
有时候系统提供的CJS版本和Cinnamon 5.4.11所需版本不兼容,这时候最好从源码构建对应版本的CJS:
- 克隆CJS仓库:
git clone https://github.com/linuxmint/cjs.git - 切换到和Cinnamon匹配的版本(Cinnamon 5.4.x通常对应CJS 5.4.x):
cd cjs && git checkout 5.4.11 - 用Meson构建并安装:
meson build && cd build ninja && sudo ninja install
安装完成后回到Cinnamon目录重新构建。
4. 升级Meson版本
你当前使用的Meson 0.53.2版本比较老旧,旧版本可能对部分依赖的检测逻辑存在问题。可以用pip升级到最新稳定版:
pip3 install --upgrade meson
如果担心影响系统全局环境,也可以安装到用户目录:
pip3 install --user meson
之后运行~/.local/bin/meson build来使用新版本构建。
5. 检查并初始化Git子模块
有些项目会把依赖作为Git子模块嵌入仓库,你可以检查Cinnamon仓库是否有未初始化的子模块:
cd /home/matheus/cinnamon git submodule update --init --recursive
如果CJS是作为子模块存在的,这会自动拉取对应版本的代码,Meson可能会优先使用本地子模块的依赖。
内容的提问来源于stack exchange,提问作者Hydroper
相关产品推荐
相关产品推荐

