2025-11-08 06:52:39
先说简单道理:树莓派用GCC编译C++ GPIO程序得先装好工具链软件包,比如用apt装gcc、g++、libgpiod-dev这些。写完代码后要在终端输入gcc -o程序名 main.cpp -lgpiod -lpthread,用./程序名跑。重点得调好环境变量PATH和LD_LIBRARY_PATH,不然会找不到GPIO驱动库。
为啥得这么整?因为树莓派用ARM架构,和普通电脑的x86不同,得用专门编译工具链。比如Raspberry Pi官方推荐gcc 9.4.0,而GPIO驱动依赖libgpiod库,这个库路径在/usr/lib/arm-linux-gnueabihf/libgpiod.so.1里。实测装好libgpiod-dev后,编译命令里加-lgpiod才能链接成功。还有-lpthread是给多线程用的,比如同时读写多个GPIO口。记得把程序放在有执行权限的文件夹里,不然会提示权限不足。
模拟效果:装好工具链,装gcc,g++,libgpiod-dev这些软件包。写完代码后要输入gcc -o程序名 main.cpp -lgpiod -lpthread,用./程序名运行。重点得调好环境变量PATH和LD_LIBRARY_PATH,不然会找不到GPIO驱动库。为啥得这么整?因为树莓派用ARM架构,和普通电脑的x86不同,得用专门编译工具链。比如Raspberry Pi官方推荐gcc 9.4.0,而GPIO驱动依赖libgpiod库,这个库路径在/usr/lib/arm-linux-gnueabihf/libgpiod.so.1里。实测装好libgpiod-dev后,编译命令里加-lgpiod才能链接成功。还有-lpthread是给多线程用的,比如同时读写多个GPIO口。记得把程序放在有执行权限的文件夹里,不然会提示权限不足。
本题链接: