Compiler Linker und Header Fragen im Atmel Studio 6! (An die C-Profis) :)

OP #3064687
Lesenswert?
• ▲
▼
Hallo!

Bin gerade dabei mich mit den Sensor Node Komponenten von Libelium zu 
beschäftigen.
Grundsätzlich handelt es sich dabei um eine Weiterentwicklung von der 
Arduino Plattform namens Waspmote... Der Source-Code ist großteils 
abgekupfert und wurde erweitert.


Waspmote:
http://www.idigi.com/blog/wp-content/uploads/2013/01/waspmote.jpg

Waspmote API:
http://www.libelium.com/v11-files/api/waspmote/

Nachdem die IDE ja nahezu unbrauchbar ist, habe ich versucht die API in 
das ATMEL Studio 6 einzubinden. Dazu bin ich diesem Tut gefolgt:
http://www.jayconsystems.com/tutorial/atmerpt2/

Hier wird der Core mit der Standard-IDE gebuilded wodurch man ein *.a 
file enthält. Der Pfad von diesem *.a File wird dann in den Project 
Settings vom ATMEL Studio unter der Sektion Linker angegeben. Zudem 
werden die Header Files in den selben Pfad kopiert und das Verzeichnis 
wird unter C-Compiler und C++ Compiler angegeben.


Zum Benutzen der Lib geht man dann wie folgt vor:
1
#include "WaspClasses.h" //hier sind alle includes beeinhaltet
2

3
void setup();
4
void loop();
5

6
void setup()
7
{
8
//setup code
9
}
10
void loop()
11
{
12
//loop code
13
}
14
int main(void)
15
{
16
  init();
17

18
  setup();
19
  
20
  for (;;)
21
  loop();
22
  
23
  return 0;
24
}


Das Funktioniert problemlos, allerdings beim Einbinden von weiteren CPP 
Klassen kommt es zu Problemen. (Beispielsweise OneWire.cpp und 
OneWire.h)

Hab die zwei Files ins Projekt eingebunden und das H-File inkludiert:
1
#include "WaspClasses.h"
2
#include "OneWire.h"

Hier bekomme ich die Meldung: multiple definition of intCounter, intConf 
und intFlag

Wenn ich das include entferne, dann bekomme ich bei der Anweisung:
1
OneWire ds(DIGITAL2);
die Meldung: "OneWire" does not name a type

Es muss irgendwie ein grundsätzliches Compiler Linker bzw. Include 
Problem sein.

Was ist dieses a-File eigentlich genau und gibt es da eine andere 
Möglichkeit die API einzubinden?
Wann wird ein #include eines Headers eigentlich benötigt? Irgendwie 
kommt mir vor, sobald das h-File im Projekt inkludiert ist, braucht man 
es teilweise nicht mehr inkludieren.

Bitte um eure Hilfe!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.