mikrocontroller.net

Forum: Compiler & IDEs Bug bei Mfile?


Autor: Peter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
kann es sein das Mfile zustätzliche .c Dateien nicht richtig einbindet? 
(Zeile 83) Weil das erste Makefile läuft so nicht auch wenn man die 
Punkte weg macht. Das 2. dagegen schon. (uart.c liegt im selben 
Verzeichniss) Ist das ein Bug von Mfile oder habe ich was falsch 
gemacht? Ich kenne mich leider in Sachen Makefile sogut wie nicht aus.
Gruß
Peter

Autor: Daniel N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich liegt es einfach an dem Leerzeichen in deinem Pfad.
Er wird wohl irgendwie Versuchen D:/Eigene zu öffnen.
Setz den Pfad doch mal in Anführungszeichen.

Grüße,
Daniel

Autor: Carlo Benz (Firma: HEG) (carloheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ein kleines Problem mit der Einbindung der RobotArmBaseLib.h 
unter WinAVR-20090313.
Obwohl es ist ein Beispielprogramm aus dem Manuel, funktioniert Trotzdem 
nicht und das Compiler spuckt was raus!!
Mein Quellcode:

#include "RobotArmBaseLib.h"


int main(void)
{
  initRobotBase(); // Always call this first! The Processor will not 
work
           // correctly otherwise.

  while(true)
  {

    // ---------------------------------------
    // Led and Beeper:

    changeBeepsound(250);  // Change beepsound
    setBeepsound();      // Beeper on
    setLEDs(0b1001);    // Set LEDs
    mSleep(500);       // delay 500ms = 0.5s

    changeBeepsound(200);  // Change beepsound
    setLEDs(0b0110);    //
    mSleep(500);       // delay 500ms = 0.5s

    changeBeepsound(100);  // Change beepsound
    setLEDs(0b1111);    //
    mSleep(500);       // delay 500ms = 0.5s

    setLEDs(0b0000);
    clearBeepsound();    // Beeper off
    mSleep(1000);       // delay 500ms = 0.5s


  }

  return 0;
}

Mein neuer Fehler:

C:\Users\Admin\Desktop\PROPRO/ledblink.c:7: undefined reference to 
`initRobotBase'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:16: undefined reference to 
`changeBeepsound'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:17: undefined reference to 
`setBeepsound'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:18: undefined reference to 
`setLEDs'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:19: undefined reference to 
`mSleep'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:21: undefined reference to 
`changeBeepsound'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:22: undefined reference to 
`setLEDs'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:23: undefined reference to 
`mSleep'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:25: undefined reference to 
`changeBeepsound'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:26: undefined reference to 
`setLEDs'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:27: undefined reference to 
`mSleep'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:29: undefined reference to 
`setLEDs'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:30: undefined reference to 
`clearBeepsound'
C:\Users\Admin\Desktop\PROPRO/ledblink.c:31: undefined reference to 
`mSleep'

Habe bis jetzt unter winAvr Programmer's Notepad mit Atmega64 zu tun 
gehabt und da nur mit den Standart Libs avr/io.h usw.

Der Fehler heißt doch das er die Befehle aus der RobotArmBaseLib nicht 
einbindet. bzw nicht kennt.

hat Jemand eine Lösung?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carlo B. schrieb:
> Ich habe ein kleines Problem mit der Einbindung der RobotArmBaseLib.h
> unter WinAVR-20090313.

ein Header File alleine ist nur die halbe Miete.

Zu deinem Header File 'RobotArmBaseLib.h' wird es wohl noch ein 
gleichnamiges(?) C File geben, in dem die Implementierungen der 
Funktionen enthalten sind.

Denn genau das sagt dir dein Compiler bzw. eigentlich der Linker

> C:\Users\Admin\Desktop\PROPRO/ledblink.c:7: undefined reference to
> `initRobotBase'

"Ist ja schön und gut, dass du eine Funktion namens 'initRobotBase' 
aufrufen willst. Aber bitte schön, wo ist denn diese Funktion? Ich hab 
den Code nicht gesehen, der hinter dieser Funktion steckt."

Selbiges für alle anderen Funktionen. 'undefined reference' bedeutet 
umgangssprachelich in etwa: "Du hast mir versprochen, dass es diese 
Funktion/Variable irgendwo geben würde. Nur bitte, wo ist sie denn 
jetzt?"

und bitte mach deinen eigenen Thrad auf. Deine Frage hat 0 (in Worten: 
null, nix, niente, nada, ...) mit der Ursprungsfrage zu tun.

: Bearbeitet durch Moderator

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.