Forum: Compiler & IDEs Probleme beim Linken und Kompilieren mit avr-gcc


von Andreas G. (mrperfekt)


Angehängte Dateien:

Lesenswert?

Hallo Leute

Nach einer ganztägigen Suche im Forum und Internet habe ich mich 
entschlossen echte Experten zu fragen, nämlich euch ;)

Ich versuche in einem Beispielprogramm diese Library einzubinden, zu 
linken und zu kompilieren.
http://elm-chan.org/fsw/ff/00index_e.html

Dabei entstehen mir immer wieder Probleme, wie:
1
pff.c:(.text+0xd4a): multiple definition of `pf_readdir'
2
pff/pff.o:pff.c:(.text+0xd4a): first defined here

Auch war oft das Problem, dass der Kompieler die Definition im .h File 
mit der im .c File als doppelte Definition bezeichnet hat.

Meine frage ist nun:

Wie kompiliere und linke ich ein Projekt mit einer main.cpp und einige 
lib.h und lib.cpp Dateien richtig.

Bis jetzt habe ich es so gemacht:
1
avr-gcc -c lib0.cpp -o lib0.o
2
...
3
avr-gcc -c libN.cpp -o libN.o
4
avr-gcc -c main.cpp -o main.o
5
6
avr-gcc -o main.elf main.o lib0.o ... libN.o
7
avr-objcopy -j .text -j .data -O ihex main.elf main.hex


Das ganze habe ich bereits in einem Makefile (auf welches ich schon ein 
bisschen stolz bin ;) ) umgesetzt.
Dabei hat man das eigentliche Makefile im übergeordneten Ordner und ein 
kleines Konfigurations Makefile im Projekt-Ordner.
Für Interessierte habe ich diese zwei Files einmal angehängt.


Danke bereits im Vorraus

Andreas

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Andreas Gruber schrieb:
> Das ganze habe ich bereits in einem Makefile (auf welches ich schon ein
> bisschen stolz bin ;) ) umgesetzt.

pff/pff.o ist darin doppelt.

von Andreas G. (mrperfekt)


Lesenswert?

Hallo Johann L.

Danke für deine Hilfe!
Ich habe bereits vermutet, dass mein Fehler ein wenig peinlich sein 
könnte, aber dass es so peinlich ist, habe ich nicht erwartet. :D

Danke

Andreas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.