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:
- gpiodetect
- gpioinfo
- gpioset
- gpioget
有没有人使用过 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:
- gpiodetect
- gpioinfo
- gpioset
- gpioget