移植gsettings dconf嵌入式

环境:
本地ubuntu,嵌入式linux,buildroot构建

移植gsettings:
gsettings是包含在libglib2的gio中的,所以,直接在buildroot环境里面添加libglib2选项编译即可支持gsettings

移植dconf
dconf是gsettings的一种存储后端,独立于glib,所以需要单独源码移植验证,另外dconf依赖于dbus,所以还需要提前移植dbus
dbus也是buildroot直接支持的,勾选dbus选项即可

步骤如下:

  1. dconf 0.40版本采用的是meson构建方式,README中有描述如何编译:
    meson builddir
    ninja -C builddir
    ninja -C builddir install
    由于我的需求不需要有图像界面,编译过程中bash_completion、gtk_doc等会报错,直接在meson_options中屏蔽选项,本地编译通过
  2. 交叉编译需要指定编译的工具链等,根目录新建txt指定编译环境,如:
    c = ‘/xx/toolchain/bin/arm-linux-gnueabihf-gcc’
    ar = ‘/xx/toolchain/bin/arm-linux-gnueabihf-ar’
    网上随便找模板把响应的选项修改成自己的环境即可
  3. 编译时自定交叉编译文件–cross-file
    后顺利编译
  4. 编译完成后需要关注两个东西,1是service目录下的dconf-service,是dconf的后台处理进程,与dbus强相关,dconf正常运行必须要保证dconf-service正常运行
    2是bin目录下的dconf,我们验证就用这个程序即可,3是client目录下的lindconf的动态库,需要一起放到目标环境
  5. 上述步骤完成后,就可以开始执行dconf程序了,中间可能会报错找不到依赖的glib相关的库,将报错的库文件放到目标环境即可
  6. 后续会报一些奇奇怪怪的错,需要关注以下环境变量:
    DBUS_SESSION_BUS_ADDRESS
    XDG_RUNTIME_DI
    XDG_CONFIG_HOME
    DCONF_PROFILE
    指定好后即可正常运行
  7. 使用gsettings时还需要指定后端,需要关注以下环境变量
    GSETTINGS_BACKEND=dconf
    GIO_EXTRA_MODULE
    GSETTINGS_SCHEMA_DIR设置完成后,即可正常使用gsettings,并以dconf为存储后端
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值