www.mikrocontroller.net

Forum: GCC gcc plug-in: Error: Object file not found on expected locati


Autor: Dirk (Gast)
Datum:

wenn ich eine selbstgeschriebene .h Datei mit einbinde
(#include sseg.h) dann bekomme ich fogenden Fehler:

gcc plug-in: Error: Object file not found on expected location [..].elf

Wenn ich das include raus nehme, bekomme ich nur noch Warning: implicit
declaration of function x (is ja klar).

Das Programm läuft zwar aber eigentlich würde ich die Warning gerne
nicht haben. ->also includen

Diese Angaben reichen wahrscheinlich noch nicht aus um mir zu Helfen ich
kann mir jetzt allerdings gar nicht vorstellen was ihr noch so brauchen
würdet, würde mich also freuen wenn jetzt ne antwort kommt ;)

oder ihr erstmal sagt wir brauchen dafür 1. 2. 3.

Ich hab das Problem übrigens öfters (nicht nur mit der sseg.h)
Autor: Stefan B. (stefan) Benutzerseite
Datum:

> #include sseg.h

Da fehlen doppelte Anführungsstriche " oder spitze Klammern <> um das
sseg.h. So wird die Includedatei nicht gefunden und deshalb auch keine
Objektdatei produziert. Das kann zur beschriebenen Fehlermeldung führen.

Eigentlich sollte aber schon vorher eine Fehlermeldung auftauchen, in
der der Fehler beim Includieren gemeldet wird.

Ansonsten...
Beitrag "gcc plug-in: Error: Object file not found on expected ...."
Beitrag "gcc plug-in: Error: Object file not found on expected locati"
http://www.avrfreaks.net/index.php?name=PNphpBB2&f...
Autor: Dirk (Gast)
Datum:

Ja ich habs auch mit "" stehen,
also #include "sseg.h"

Hab ich hier nicht richtig gepostet duck
Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Guck dir trotzdem mal die Fehlermeldungen an.  AVR Studio wertet den
Rückkehrcode vom "make" nicht ordentlich aus, sondern versucht
stattdessen, alle Fehlermeldungen zu parsen.  Damit findet es natürlich
nur ,,erwartete'' Fehler, bei unerwarteten stolpert es erst dann, wenn
doch seiner Meinung nach der Build-Prozess gut gelaufen ist, am Ende
aber dann gar keine Objektdatei rausgekommen ist.
Autor: Dirk (Gast)
Datum:

Jo, so ein Fall is es bei mir.

Ok ich habe herausgefunden woran es liegt..

Ich definiere bzw. deklariere in der sseg.h einige konstanten (const
uint8_t) und eine globale Variable..

Damit kommt er wohl nicht zurecht..:
multiple definition of sseg_charset

Darf man in der .h so was gar nicht machen?
Muss ich das in der .c machen? oder gibts da noch andere Orte?
Autor: Dirk (Gast)
Datum:

ich wollte noch hinzufügen, dass ich die sseg.h mit
#ifndef sseg_h
#define sseg_h
beginne und mit #endif schließe

in so fern wundert es mich das er versucht das ganze mutliple zu
definieren, darf/ kann er doch eigentlich nur einmal oder wieso nicht??
Autor: Stefan B. (stefan) Benutzerseite
Datum:

Also im Prinzip das gleiche Grundproblem wie im Link #2 oben
Beitrag "gcc plug-in: Error: Object file not found on expected locati"

Steht bei der Fehlermeldung "multiple definition of sseg_charset" keine
Zeilennummer oder Name einer Quelldatei dabei? Einen besseren
Schussinsblaue kann ich auch nicht abgeben - es fehlt halt der
Quellcode.
Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Du darfst in Headerdateien nur deklarieren, nicht aber definieren.
(*)  Also das hier ist OK:
extern uint8_t someglobalvar;
extern uint8_t dosomething(void);
uint8_t dosomethingelse(void);

Bei Funktionen ist das "extern" optional in der Deklaration, der
Compiler kann an Hand des abschließenden Semikolons stets eine
Deklaration von einer Definition unterscheiden.

Das hier ist falsch, da es sich um eine Definition handelt:
uint8_t someglobalvar;

(*) Keine Regel ohne Ausnahme: Eine Funktionsdefinition mit "static
inline" ist auch im Headerfile OK.  Eine solche Funktion hat als nur
Sinn, wenn sie vor der ersten Benutzung nicht nur deklariert, sondern
auch definiert worden ist, da der Compiler ja explizit angewiesen
wird, den zugehörigen Assemblercode an Ort und Stelle sofort zu
generieren.
Autor: Timo P (Gast)
Datum:

Hallo!
Ich habe ein spezielles extern probelem:

main.c:  volatile char buffer[BUFFER_SIZE];

uart.c:  extern volatile char buffer[BUFFER_SIZE];

Fehler: gcc plug-in: Error: Object file not found on expected locati

Warum? Evtl. weil das #define für BUFFER_SIZE in einer main.h ist? Diese
includiere ich doch in beiden .c-Modulen.

Ich weiß keinen Rat mehr! Danke für Hilfe!
Autor: Karl Heinz Buchegger (kbuchegg) (Moderator)
Datum:

Timo P schrieb:

> Warum? Evtl. weil das #define für BUFFER_SIZE in einer main.h ist? Diese
> includiere ich doch in beiden .c-Modulen.

Schön für dich.
Aber denk immer drann: Wir können deinen Code nicht sehen

> Ich weiß keinen Rat mehr! Danke für Hilfe!

Für dich gilt dasselbe:
Geh ins Output Fenster (dort wo die Compiler Statusmeldungen
durchlaufen) und scroll nach oben, ob es einen Fehler vom
Compiler/Linker gab.
Autor: Timo P (Gast)
Datum:

nein, lezte meldung war:

Loaded partfile: C:\Programme\Atmel\AVR
Tools\PartDescriptionFiles\ATmega16.xml

danach der Fehler!

Wenn ich die Codes wieder in ein einziges modul packe, läuft alles
wieder. GRRR

ich denke das einfachste ist wohl, wenn ich kein define für die
buffer-size nutze, sondern es statisch angebe. wohlgemerkt an zwei
stellen...:(
Autor: Karl Heinz Buchegger (kbuchegg) (Moderator)
Datum:

Timo P schrieb:
> nein, lezte meldung war:
>
> Loaded partfile: C:\Programme\Atmel\AVR
> Tools\PartDescriptionFiles\ATmega16.xml
>
> danach der Fehler!

Das kann nicht sein.
Da fehlt mindestens der Compileraufruf, da fehlt mindestens die
Compiler-Fertig Meldung, da fehlt ....

> ich denke das einfachste ist wohl, wenn ich kein define für die
> buffer-size nutze, sondern es statisch angebe. wohlgemerkt an zwei
> stellen...:(

Kannst du natürlich machen.
Du kannst aber auch den Code einfach mal herzeigen.
Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Timo P schrieb:

> Fehler: gcc plug-in: Error: Object file not found on expected locati

Update dein AVR Studio bitte auf eine halbwegs aktuelle Version, die
den exit-Status von "make" ordentlich auswertet, statt sich auf das
Parsen von Textmustern für Fehlermeldungen zu verlassen.

Bitte kapere keine alten Threads für dich.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
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.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net