C语言 机器人海角图书馆不在 Beaglebone Blue 上工作



我一直在尝试从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 LEDn");
 int i = 0;
 while(i<10){
  // turn pin on
  gpio_set_value(PIN, 1);
  printf("ONn");
  sleep(1);
  // turn pin off
  gpio_set_value(PIN, 0);
  printf("OFFn");
  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.

我在带有机器人斗篷版本 0.3.4 的 BeagleBone Blue 上。

我检查了相应的文件夹,标题和库似乎就位。 我尝试从 GitHub 下载安装程序并再次制作库,但仍然收到相同的错误。 我试图重新安装斗篷,结果相同。 我也翻阅了源代码以查找错误,但我找不到任何东西。

任何帮助将不胜感激

我会

发表评论,但我不能,直到我获得 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

更新:解决了问题。 事实证明,我使用的PDF已经过时了。 机器人斗篷有一个 GitHub 存储库,其中包含更新的代码。 您必须使用存储库中包含的生成文件来编译涉及机器人斗篷的任何代码。 不要使用 GCC 和命令行<</p>

DIV class="one_answers">

我在使用 BeagleBone Blue rev A2 时遇到了同样的问题,发现标头实际上被称为 roboticscape.h 而不是robotics_cape.h了。您在 git 存储库中提到的示例或模板可以在 beagle bone 的 /usr/share/roboticscape/ 目录中找到。

最新更新