树莓派-wiringPi-编译&头文件&lib

本文介绍如何在安装wiringPi后正确编译并使用其提供的接口。包括了如何包含头文件及链接库的方法,并列举了wiringPi安装后生成的主要头文件和库。

原文地址:http://nicekwell.net/blog/20171122/shu-mei-pai-wiringpi-bian-yi-and-tou-wen-jian-and-lib.html


安装好之后想要使用wiringPi的接口,就必须要包含wiringPi的头文件、链接wiringPi库,本文介绍如何正确编译。

安装好之后,会生成以下头文件:

/usr/local/include/wiringPi.h 提供基础的服务,包括GPIO。
/usr/local/include/wiringPiI2C.h 提供I2C相关支持。
/usr/local/include/wiringPiSPI.h 提供SPI相关支持。
/usr/local/include/wiringPiShift.h  

生成以下库:

/usr/local/lib/libwiringPiDev.so

在编写C程序时:

  1. 要 include 头文件,直接用<>即可,不需要指明路径。
    如:#include 编译器会自动从/usr/local/include/目录下寻找头文件。
  2. 编译时要连接wiringPi的库。
    如:gcc gpio.c -o gpio -lwiringPi
    编译器会自动从/usr/local/lib/目录下寻找库。



树莓派5的ARM64架构操作系统中,若希望将 `-lwiringPi` 和 `-lwiringPiDev` 添加到编译命令中,需要确保以下几个步骤正确执行,以便编译器能够正确识别并链接这些库。 ### 编译命令结构 在使用 `gcc` 编译程序时,`-l` 选项用于指定需要链接的库。在实际编译命令中,`-lwiringPi` 和 `-lwiringPiDev` 应该放在源文件和其它选项之后。例如: ```bash gcc main.c -o main -lwiringPi -lwiringPiDev ``` 该命令会编译 `main.c` 并链接 `libwiringPi` 和 `libwiringPiDev` 两个库。 ### 库文件路径配置 如果库文件不在标准路径(如 `/usr/lib` 或 `/usr/local/lib`)中,需要通过 `-L` 选项指定库文件的搜索路径。例如,若库文件位于 `/home/pi/lib` 目录下,则编译命令应为: ```bash gcc main.c -o main -L/home/pi/lib -lwiringPi -lwiringPiDev ``` ### 头文件路径配置 如果 `wiringPi.h` 头文件不在标准的头文件路径中,需要通过 `-I` 选项指定头文件的搜索路径。例如,若头文件位于 `/home/pi/include` 目录下,则编译命令应为: ```bash gcc main.c -o main -I/home/pi/include -L/home/pi/lib -lwiringPi -lwiringPiDev ``` ### 动态链接库的运行时配置 在运行程序时,如果动态链接库(如 `libwiringPi.so` 和 `libwiringPiDev.so`)不在标准路径中,需要设置环境变量 `LD_LIBRARY_PATH` 来指定库的搜索路径。例如: ```bash export LD_LIBRARY_PATH=/home/pi/lib:$LD_LIBRARY_PATH ``` 设置完成后,即可运行程序: ```bash ./main ``` ### 示例代码 以下是一个使用 `wiringPi` 和 `wiringPiDev` 的简单示例代码,用于控制蜂鸣器: ```c #include &lt;stdio.h&gt; #include &lt;wiringPi.h&gt; #include &lt;unistd.h&gt; #define BEEP 0 // 设置针脚0为蜂鸣器的控制引脚 int main(void) { wiringPiSetup(); // 初始化wiringPi库 pinMode(BEEP, OUTPUT); // 设置IO口为输出模式 while (1) { digitalWrite(BEEP, LOW); // 设置IO口输出低电平,蜂鸣器响 usleep(100000); // 延时100ms digitalWrite(BEEP, HIGH); // 设置IO口输出高电平,蜂鸣器不响 usleep(100000); // 延时100ms } return 0; } ``` 编译该代码的命令如下: ```bash gcc beep.c -o beep -I/home/pi/include -L/home/pi/lib -lwiringPi -lwiringPiDev ``` ### 总结 在树莓派5的ARM64系统中,添加 `-lwiringPi` 和 `-lwiringPiDev` 到编译命令的关键在于确保头文件和库文件的路径正确,并在运行时设置好动态链接库的搜索路径。通过上述步骤,可以顺利完成程序的编译和运行。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值