-         

Ergebnis 1 bis 6 von 6

Thema: problem beim compilieren (C)

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.11.2007
    Ort
    Prichsenstadt
    Alter
    33
    Beiträge
    29

    problem beim compilieren (C)

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hi,

    hab mit dem Asuro angefangen und folgendes Problem.Es geht um folgenden SourceCode, ist ja eigentlich nichts berauschendes:

    #include "asuro.h"
    int main(void) {

    init ();
    MotorDir(FWD,FWD);
    MotorSpeed(120,120);
    StatusLED(GREEN);
    while (PollSwitch()==0) {
    SerWrite("Alles OK!\n",10);
    }
    MotorSpeed(0,0);
    StatusLED(RED);
    while (1) {
    SerWrite("Aua!\n",5);
    }
    }

    dann compilieren ich mit:
    > avr-gcc own.c -c -o own.o -Os -g -mmcu=atmega8

    und linke mit:
    > avr-gcc own.o -o own.elf -mmcu=atmega8

    dann kommt folgender Fehler:

    own.o: In function `main':
    /home/manuel/asuro/own source/own.c:26: undefined reference to `init'
    /home/manuel/asuro/own source/own.c:27: undefined reference to `MotorDir'
    /home/manuel/asuro/own source/own.c:28: undefined reference to `MotorSpeed'
    /home/manuel/asuro/own source/own.c:29: undefined reference to `StatusLED'
    /home/manuel/asuro/own source/own.c:31: undefined reference to `SerWrite'
    /home/manuel/asuro/own source/own.c:30: undefined reference to `PollSwitch'
    /home/manuel/asuro/own source/own.c:33: undefined reference to `MotorSpeed'
    /home/manuel/asuro/own source/own.c:34: undefined reference to `StatusLED'
    /home/manuel/asuro/own source/own.c:36: undefined reference to `SerWrite'

    Die header Datei asuro.h habe ich im Verzeichnis wo sich auch own.c befindet. Ich verstehe nur nicht warum er mir die definierten Objekte wie z.B. "MotorDir" nicht erkennt, wobei sie ja in der asuro.h stehen. Habe auch schon die asuro.h in das include verzeichnis von avr-gcc kopiert, leider ohne Erfolg.

    Ich bin mir sicher das es ein banaler Fehler ist... hab schon einige Howtos über den avr-gcc und C durchgemacht, aber irgendwie steh ich aufm Schlauch. Wäre euch sehr Dankbar um Hife.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.10.2007
    Ort
    Bayern
    Alter
    29
    Beiträge
    116
    Hi

    Wenne s ein relativer Pfad ist dann muss das ganze in < und > nicht in "".
    "" verwendet man bei absolutem Pfad. Also:

    #include <asuro.h>

    -oder-

    #include "C:\Programme\ABCDEF\include\asuro.h"

    mfg
    Benny
    cooming soon...

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2004
    Alter
    33
    Beiträge
    165
    Zitat Zitat von HF SHOOTER
    Wenne s ein relativer Pfad ist dann muss das ganze in < und > nicht in "".
    "" verwendet man bei absolutem Pfad. Also:

    #include <asuro.h>

    -oder-

    #include "C:\Programme\ABCDEF\include\asuro.h"
    Das ist afaik falsch.

    Code:
    #include <stdio.h>
    bedeutet das der Preprozessor die Datei stdio.h aus dem SystemIncludeVerzeichnis (zB C:/WinAVR/avr/include) einfuegt.
    Code:
    #include "asuro.h"
    sagt dem Preprozessor das es sich um ein "Userinclude" handelt. Das kannn sowohl relativer als auch absoluter Pfad sein. Es wird standardmaessig in den Userdateien (wo auch der Quellcode gespeichert ist) gesucht.

    Man kann via Makefile natuerlich auch weitere Includeverzeichnisse angeben, auch das Userverzeichnis, dann fuehrt #include <asuro.h> auch zum Erfolg.



    Edit: Achja, Topic gab es auch noch eins. Muss evtl asuro.c mit kompiliert werden?

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    06.11.2007
    Ort
    Prichsenstadt
    Alter
    33
    Beiträge
    29
    erstmal Danke für euere Anworten,

    leider hat ein ändern auf <asuro.h> nichts bewirkt, bleibt beim alten Fehler. Was hat es mit der asuro.c auf sich, wie kann ich die mit einkompilieren? muss ich die auch einfach mit #include einfügen? evtl. ein Makefile schreiben?

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2004
    Alter
    33
    Beiträge
    165
    Makefile waere schon optimal denke ich. Gab es keine Beispiele beim Asuro? Die Makefiles sind doch bei so "Hobbyanwendungen" meist recht gut dokumentiert.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    06.11.2007
    Ort
    Prichsenstadt
    Alter
    33
    Beiträge
    29
    alles klar, hab das makefile bearbeitet und nun gehts... nochmal danke

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •