You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派5使用libgpiod编译GPIO控制C程序遇头文件缺失问题求助

树莓派5 GPIO编程:解决lgpio.h缺失问题

核心问题说明

你当前使用的代码依赖lgpio库,但你之前安装的是libgpiod——这是两个完全独立的GPIO操作库,因此会出现头文件找不到的错误。

如何安装lgpio库(获取lgpio.h)

lgpio是第三方开发的GPIO工具库,需要手动编译安装:

  • 先安装编译依赖:
    sudo apt update && sudo apt install git build-essential
    
  • 获取lgpio源码并编译安装:
    git clone https://github.com/joan2937/lg.git
    cd lg
    make
    sudo make install
    
    安装完成后,lgpio.h会被放到/usr/local/include目录,编译时编译器可自动识别。

正确编译你的blinky.c代码

你之前的编译命令参数错误,正确命令为:

gcc -o blinky blinky.c -llgpio

注意:库链接参数-llgpio必须放在源文件之后,这是gcc的编译规则要求。

libgpio与libgpiod的区别

  • libgpiod:官方推荐的标准库,基于Linux内核的GPIO字符设备接口开发,是树莓派Bookworm等新系统的正统GPIO操作方案,稳定性和兼容性更强。
  • lgpio:第三方库,封装了更简洁的API,支持软PWM、中断监听等额外功能,但不属于官方维护范畴。

可选:改用官方libgpiod的示例代码

如果你想切换到官方推荐的libgpiod,可使用以下代码替换你的blinky.c:

#include <stdio.h>
#include <stdlib.h>
#include <gpiod.h>
#include <unistd.h>

int main(void) {
    struct gpiod_chip *chip;
    struct gpiod_line *line;
    int ret;

    // 打开RPi5的GPIO芯片(通常为/dev/gpiochip4)
    chip = gpiod_chip_open("/dev/gpiochip4");
    if (!chip) {
        perror("Failed to open GPIO chip");
        return EXIT_FAILURE;
    }

    // 获取GPIO17引脚
    line = gpiod_chip_get_line(chip, 17);
    if (!line) {
        perror("Failed to get GPIO line");
        gpiod_chip_close(chip);
        return EXIT_FAILURE;
    }

    // 将引脚设置为输出模式,初始电平为低
    ret = gpiod_line_request_output(line, "blinky", 0);
    if (ret < 0) {
        perror("Failed to set line as output");
        gpiod_chip_close(chip);
        return EXIT_FAILURE;
    }

    // 循环闪烁
    while (1) {
        gpiod_line_set_value(line, 0);
        sleep(1);
        gpiod_line_set_value(line, 1);
        sleep(1);
    }

    // 资源清理(实际循环不会终止,此处仅为代码完整性)
    gpiod_line_release(line);
    gpiod_chip_close(chip);
    return EXIT_SUCCESS;
}

编译命令:

gcc -o blinky blinky.c -lgpiod

内容的提问来源于stack exchange,提问作者Seamus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 05:17:18