libgpiod API 用法(Linux 共享库)

libgpiod API usage (Linux shared libraries)

有没有人使用过 libgpiod API?我已经在我的 linux 平台上安装了它,但无法调用它的库函数。

我安装了:

git clone git://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git
cd libgpiod
./autogen.sh
make
make install

之后,我在/usr/local/lib/[中看到了libgpiod.so库gpiod.h/usr/local/include/ 中(为了更好的衡量,我也 运行 ldconfig)。但是,当我尝试编译以下内容时:

test.c

#include <gpiod.h>

struct gpio_chip *chip;    

int main(void)
{
    chip = gpio_chip_open("/dev/gpiochip4");
    return 0;
}

我收到以下错误:undefined reference to 'gpiod_chip_open'

谁能帮我看看我哪里出错了?

非常感谢!

您错过了使用 -l 标志链接的库。

这样编译:

gcc -lgpiod test.c

此外,您可能还需要为 SO 文件配置运行时路径(如果它是自定义文件)。有关运行时共享对象位置的更多详细信息,请参阅此 thread

请试试这个命令:

首先安装库:

sudo apt-get install -y libgpiod-dev

编译命令:

gcc GPIO_LED.c -o led_read_status -lgpiod

运行 作为 root 用户。

此外,您还可以使用 gpio 工具来调试 GPIO:

  1. gpiodetect
  2. gpioinfo
  3. gpioset
  4. gpioget