dbus-sensors与libgpiod

1 开发平台

Win11、VS2022、Fedora39。

2 debus-sensors简介

以下摘自openbmc/dbus-sensors: D-Bus configurable sensor scanning applications (github.com)

dbus-sensors is a collection of sensor applications that provide the

xyz.openbmc_project.Sensor collection of interfaces. They read sensor values

from hwmon, d-bus, or direct driver access to provide readings. Some advance

non-sensor features such as fan presence, pwm control, and automatic cpu

detection (x86) are also supported.

3 作业目的

通过VS2022跨平台Linux构建dbus-sensors的x64可执行模块。

4 问题描述

在vs2022中的链接报错如下:

ADCSensor.hpp(47): error : undefined reference to `gpiod::line::operator bool() const'

ADCSensor.hpp:51: undefined reference to `gpiod::line::set_value(int) const'

ADCSensor.hpp:23: undefined reference to `gpiod::find_line(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'

都与gpiod有关。

5 解决方法

用meson构建dbus-sensors时自动下载了libgpiod-1.6.3的源码,用ninja编译生成了libgpiod.so和libgpiodcxx.so。

在这两个库中搜到了find_line等函数名。在vs2022中指定链接的也是这两个库。

最终发现,vs2022链接的实际是fedora39中/usr/lib64中的libgpiod,这是通过dnf命令安装的,其版本是2.0.2,库里没有find_line等函数名。

卸载这个库后解决问题。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值