Robotics Cape Library 无法在 Beaglebone Blue 上工作
Robotics Cape Library not working on Beaglebone Blue
我一直在尝试从 BeagleBoneRobotics PDF 编译示例,但编译器找不到 header。
这是我要编译的代码:
#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;
}
这是我遇到的错误:
Error
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。
我检查了相应的文件夹,header 和库似乎就位。我已经尝试从 GitHub 下载安装程序并再次制作库,但仍然收到相同的错误。我试过重新安装斗篷,结果相同。我还仔细研究了源代码以查找错误,但我找不到任何东西。
如有任何帮助,我们将不胜感激
我会评论,但我不能,直到我获得 50 声望。
如果库和你的程序在同一个目录下,那么你使用 include "
#include "robotics_cape.h"
而不是 #include <robotics_cape.h>
如果库位于编译器使用的搜索路径中,则使用 #include <name>
。
如果文件名被引用,搜索文件
通常从找到源程序的地方开始。
如果库与您的文件不在同一个目录中,请确保它在 gcc 搜索路径中。
此 link 将为您提供 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
更新:
解决了这个问题。原来我使用的 PDF 已经过时了。包含更新代码的机器人斗篷有一个 GitHub repository。您必须使用存储库中包含的 makefile 来编译涉及机器人斗篷的任何代码。不要使用 GCC 和命令行
我在使用 BeagleBone Blue rev A2 时遇到了同样的问题,发现 header 实际上称为 roboticscape.h
而不是 robotics_cape.h
。您在 git 存储库中提到的示例或模板可以在 beagle bone 的 /usr/share/roboticscape/
目录中找到。
我一直在尝试从 BeagleBoneRobotics PDF 编译示例,但编译器找不到 header。
这是我要编译的代码:
#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;
}
这是我遇到的错误:
Error
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。
我检查了相应的文件夹,header 和库似乎就位。我已经尝试从 GitHub 下载安装程序并再次制作库,但仍然收到相同的错误。我试过重新安装斗篷,结果相同。我还仔细研究了源代码以查找错误,但我找不到任何东西。
如有任何帮助,我们将不胜感激
我会评论,但我不能,直到我获得 50 声望。
如果库和你的程序在同一个目录下,那么你使用 include "
#include "robotics_cape.h"
而不是 #include <robotics_cape.h>
#include <name>
。
如果文件名被引用,搜索文件 通常从找到源程序的地方开始。
如果库与您的文件不在同一个目录中,请确保它在 gcc 搜索路径中。
此 link 将为您提供 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
更新: 解决了这个问题。原来我使用的 PDF 已经过时了。包含更新代码的机器人斗篷有一个 GitHub repository。您必须使用存储库中包含的 makefile 来编译涉及机器人斗篷的任何代码。不要使用 GCC 和命令行
我在使用 BeagleBone Blue rev A2 时遇到了同样的问题,发现 header 实际上称为 roboticscape.h
而不是 robotics_cape.h
。您在 git 存储库中提到的示例或模板可以在 beagle bone 的 /usr/share/roboticscape/
目录中找到。