首页
登录 | 注册

树莓派找不到wiringPi.h文件

刚才开始接触树莓派,下载了BCM2835库和wiringPi库,根据例子测试发现,BCM2835库编译通过,并且可以正常执行,但是在用wiringPi库编译时报错,找不到wiringPi.h文件。

代码如下:

#include <wiringpi.h>
char LED = 25; 

int main(void)
{
    if(wiringPiSetup() < 0)return 1;
    pinMode (LED,OUTPUT) ;

    while(1)
    {   
        digitalWrite(LED, 1) ;
        delay (200);
        digitalWrite(LED, 0) ;
        delay (200);
    }   
}


执行 

#gcc -Wall  led_wiringpi.c -o led_wiringpi -lwiringPi  

 报错     找不到wiringpi.h文件

请注意上面的  <wiringpi.h> ,编译器会去 /usr/include 目录下去找wiringpi.h这个文件,而这个头文件在 目录 wiringPi/wiringPi 下,在安装时并没有把这个头文件复制到 /user/include 目录,所以 我们需要手动处理

1、进入wiringPi/wiringPi 目录 ,  即安装的文件夹内

2、# ls   //查看文件     你会发现有一个 wiringPi.h 的头文件 

3、#sudo cp wiringPi.h  /usr/include   //拷贝头文件

注意! 源文件的头文件名为 wiringPi.h   而 代码中包含的头文件名为  wiringpi.h  ,虽然只是一个大小写区别,但是测试发现还是找不到!

所以 代码中要成如下 

#include <wiringPi.h>
char LED = 25; 

int main(void)
{
    if(wiringPiSetup() < 0)return 1;
    pinMode (LED,OUTPUT) ;

    while(1)
    {   
        digitalWrite(LED, 1) ;
        delay (200);
        digitalWrite(LED, 0) ;
        delay (200);
    }   
}



再执行  #gcc -Wall  led_wiringpi.c -o led_wiringpi -lwiringPi     

一切正常   ,测试通过


上面的方法的通过把需要引用的头文件拷贝到默认的目录下。下面采用把头文件路径加入到环境变量中,这样就不需要拷贝头文件了,不然就要把所以的头文件都要拷贝。

1、#cd ~   //进入用户目录

2、#sudo cp .bashrc    .bashrc.bak    //备份原有环境变量文件

3、#sudo vim .bashrc   //打开环境变量文件  

4、在文件的最下面 加入 以下内容  

  export LD_LIBRARY_PATH=/home/pi/wiringPi/wiringPi:$LD_LIBRARY_PATH
  export LD_LIBRARY_PATH=/home/pi/wiringPi/devLib:$LD_LIBRARY_PATH

以上两句是告诉编译器 除了默认的包含路径外 还需要去上面指定的路径去找头文件 

5、#source .bashrc      //使环境变量文件生效



至此  大功告成!

编译正常







2020 jeepxie.net webmaster#jeepxie.net
10 q. 0.008 s.
京ICP备10005923号