2017-05-08 25 views
0

我一直在試圖編譯關於BeagleBoneRobotics PDF的示例,但編譯器找不到頭。機器人開普圖書館不工作Beaglebone藍色

這裏是我想要編譯代碼:

#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

[email protected]:/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藍機器人技術斗篷版本0.3.4。

我檢查了合適的文件夾,並且頭文件和庫似乎已經到位。我試過從GitHub下載安裝程序並再次創建該庫,但仍然收到相同的錯誤。我試圖用相同的結果重新安裝斗篷。我也挖掘了源代碼來尋找錯誤,但我找不到任何東西。

任何幫助,將不勝感激

回答

0

更新: 解決的問題。原來我使用的PDF已經過時了。有一個GitHub repository爲機器人披肩包含更新的代碼。您必須使用存儲庫中包含的makefile來編譯任何涉及機器人角的代碼。不要使用GCC和命令行

3

我會發表評論,但我不能,我得到50聲譽。

如果libriary是在相同的目錄中的程序,然後使用包括「

#include "robotics_cape.h"而不是#include <robotics_cape.h>

#include <name>使用如果庫是在用你的編譯器的搜索路徑。

如果文件名被引用,搜索文件 通常開始在源程序被發現。

如果LIB rary與您的文件不在同一個目錄中,請確保它位於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

0

我和BeagleBone Blue rev A2有同樣的問題,發現頭文件實際上叫做roboticscape.h而不是robotics_cape.h了。您從git repo中提到的示例或模板可以在beagle骨的/usr/share/roboticscape/目錄中找到。