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