IAR Embedded Workbench

OP #2514927
Lesenswert?
• ▲
▼
Hallo allerseits,

also ich arbeite gerade mit den Mikrocontrollern der Firma EnergyMicro 
und habe ein wenig Startschwierigkeiten, die Bibliotheken in die 
IAR-Embedded-Workbench richtig einzubinden.

Wie stelle ich den Preprocessor ein, automatisch in den richtigen 
Verzeichnissen nach den benötigten C-Dateien zu suchen?

Beispielsweise habe ich die Zeile

> #include "efm32_cmu.h"

in meinem Programm.

Die HeaderDatei befindet sich in
D:\Eigene Dateien\EFM32_Programm\efm32lib\inc\

und dieses Verzeichnis habe ich in den Projektoptionen --> C/C++Compiler 
Einstellungen in den "additional include directories" auch eingebunden.
...und soweit ich es verstehe, wird die HeaderDatei von dem Preprozessor 
auch gefunden, denn sonst hätte er sich beschwert, was mir nämlich 
passiert ist, bevor ich dieses Verzeichnis eingebunden hatte.

Nun möchte ich allerdings auch einige Funktionen des eingebundenen 
Headers nutzen, in der Main nutze ich also die Funktion

> CMU_ClockEnable(cmuClock_GPIO, true);

...und erhalte daraufhin den folgenden Error:

>Error[Li005]: no definition for "CMU_ClockEnable"
>[referenced from D:\Eigene Dateien\
>EFM32_Programm\Debug\Obj\main.o]


Offenbar wird also die c-Funktion: efm32_cmu.c nicht gefunden.

Diese befindet sich in dem Verzeichnis
D:\Eigene Dateien\EFM32_Programm\efm32lib\src\


und dieses Verzeichnis habe ich ebenfalls in in den Preprocessoroptionen 
eingebunden...
Im gegensatz zu der Headerdatei scheint der Preprozessor die Datei 
jedoch nicht selbständig zu finden, obwohl sie vorhanden ist...

Wenn ich die benötigte efm32_cmu.c eigenhändig in den Workframe meines 
Projektes per "addFile" einbinde,  dann wird die Datei gefunden...

Das ist aber irgendwie mega umständlich, vor allem wo die Headerdateien 
ja richtig eingebunden werden, nur mit den C-Dateien klappt es nicht auf 
Anhieb...


jemand eine Idee?

mfg
Gast #2514939
Lesenswert?
• ▲
▼
Großes Fragezeichen schrieb:
> Das ist aber irgendwie mega umständlich, vor allem wo die Headerdateien
> ja richtig eingebunden werden, nur mit den C-Dateien klappt es nicht auf
> Anhieb...

Tja, das ist halt so "umständlich". Der Compiler compiliert nicht 
automatisch alles, was er in den Verzeichnissen findet, sondern nur das, 
was man ihm per Projekt vorsetzt. Und das ist auch ganz gut so ;)

Oliver
Persönliche Seite #2514999
Lesenswert?
• ▲
▼
Großes Fragezeichen schrieb:
> Beispielsweise habe ich die Zeile
>
>> #include "efm32_cmu.h"
>
> in meinem Programm.

Mach aus den Anführungszeichen Spitzklammern:

>> #include <efm32_cmu.h>

und der Compiler sucht im Include-Pfad.

Die Anführungszeichen verwendest Du dann, wenn die Headerdatei an der 
gleichen Stelle zu finden ist, wie die anderen zum Projekt gehörenden 
Dateien (also in "src").

Und versuche mal, den Kram in einem Verzeichnis ohne Leerzeichen im 
Namen (also nicht irgendwo unter Eigene Dateien") abzulegen.
Gast #2516235
Lesenswert?
• ▲
▼
Moin,

der weg, den Du hier beschreibst ist der richtige:

Großes Fragezeichen schrieb:
> Wenn ich die benötigte efm32_cmu.c eigenhändig in den Workframe meines
> Projektes per "addFile" einbinde,  dann wird die Datei gefunden...

Warum ist das sinnvoll?

Du kannst die Funtionen, die in der Datei "efm32_cmu.c" definiert sind 
zu einer Library kompilieren. In einem Projekt musst Du dann nur den 
Header inkludieren und die Library per "add File" hinzufügen.

viel Spaß

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.