[avr-gcc] nie działa -DFOSC=8000000

Nov 10, 2005 3 Replies

Witam!



Dziwny problem.



Kompiluje kod za pomocą polecenia:



gcc ... -DFOSC=8000000 ...



i wywala mi mase błedów typu podwójne definicje funkcji/etc.



jeśli kompiluje bez tej definicji to kod nie ma błędów. Okaząło się ze w ogóle dodanie czegokolwiek typu -DFOO=NULL powoduje wywalanie się procesu linkowania (kompilacja _chyba_ zachodzi bez błedów). avr-gcc w wersji 3.4.3.



Czy coś źle robię ? Chciałem sobie wyprodukować różne firmware dla róznych kwarców za jednym zamachem z tego samego kodu. A wygląda mi to na błąd w gcc.


A jak kompilujesz? Kompilujesz najpierw moduly do plikow .o i pozniej linkujesz czy generujesz od razu plik wynikowy? Czy kompilacja wywala sie tez jak w kodzie dodasz odpowiednie #define? Przepusc kod przez preprocesoR (gcc -E) i zobacz jak wyglada kod wynikowy.

pzdr. j.

Od razu wynikowy.

Nie, właśnie w kodzie mam definicję FOSC i nie ma problemu:

#ifndef FOSC #define FOSC 11059200 #endif

Gdy jednak puszczę kompilator z zewnatrzną definicją -DFOSC=8000000 to wysypuje się sterta błedów o podwójnych definicjach funkcji, co w ogóle nie ma zawiązku. Błędy wystepują przy każdej zdefiniowanej preze mnie funkcji.

Nijak, tzn poprawnie raczej.

Hm, wyglada to co najmniej dziwnie. Skompiluj kod do pliku .o i dopiero pozniej zlinkuj. Moze to cos podpowie? Komunikaty wyswietlane z -v tez moga cos podpowiedziec. Wiecej pomyslow nie mam

pzdr. j.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required