我一直试图从BeagleBoneRobotics PDF编译示例,但编译器无法找到标题。
这是我尝试编译的代码:
#include <robotics_cape.h>
#define PIN 67
int main (void){
// export gpio pin for use
if(gpio_export(PIN)){
printf("Unable to open export.\n");
return -1;
}
// set pin for output
if(gpio_set_dir(PIN, OUTPUT_PIN)){
printf("Unable to open gpio67_direction.\n");
return -1;
}
// start blinking loop
printf("blinking LED\n");
int i = 0;
while(i<10){
// turn pin on
gpio_set_value(PIN, 1);
printf("ON\n");
sleep(1);
// turn pin off
gpio_set_value(PIN, 0);
printf("OFF\n");
i++; // increment counter
sleep(1);
}
return 1;
}
这是我得到的错误:
root@beaglebone:/var/lib/cloud9# gcc Testing.c -lrobotics_cape -o Testing
Testing.c:1:27: fatal error: robotics_cape.h: No such file or directory
#include <robotics_cape.h>
^
compilation terminated.
我在BeagleBone Blue上使用机器人斗篷版0.3.4。
我检查了相应的文件夹,标题和库似乎已就位。我尝试从GitHub下载安装程序并再次创建库,但仍然收到相同的错误。我试图以相同的结果重新安装斗篷。我也挖掘了源代码来寻找错误,但我找不到任何东西。
非常感谢任何帮助
答案 0 :(得分:3)
我会评论,但我不能,直到我获得50点声望。
如果libriary与您的程序位于同一目录中,那么您使用include“
#include "robotics_cape.h"
代替#include <robotics_cape.h>
#include <name>
。
如果引用了文件名,则搜索该文件 通常从找到源程序的地方开始。
如果库与文件不在同一目录中,请确保它位于gcc搜索路径中。
此链接将为您提供gcc路径。
https://gcc.gnu.org/onlinedocs/gcc-3.3.3/cpp/Search-Path.html
和
https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html#Search-Path
答案 1 :(得分:1)
更新: 解决了这个问题。事实证明我使用的PDF已经过时了。机器人斗篷的GitHub repository包含更新的代码。您必须使用存储库中包含的makefile来编译涉及robotics cape的任何代码。不要使用GCC和命令行
答案 2 :(得分:1)
我对BeagleBone Blue rev A2有同样的问题,发现标题实际上被称为roboticscape.h
而不是robotics_cape.h
。您在git repo中提到的示例或模板可以在beagle bone的/usr/share/roboticscape/
目录中找到。