Witam, mam 2 identyczne uklady roznica jest niewielka. w jednym jest zegar DS1305 w drugim DS1307. Jest mozliwosc zeby kompilator tworzyl binaria za jednym zamachem dla obu ukladow? Jak to uwarunkowac ???
- posted
16 years ago
Witam, mam 2 identyczne uklady roznica jest niewielka. w jednym jest zegar DS1305 w drugim DS1307. Jest mozliwosc zeby kompilator tworzyl binaria za jednym zamachem dla obu ukladow? Jak to uwarunkowac ???
Maciej Wywrocki pisze:
no tak, jednak albo 1szy wariant albo 2gi. Mi chodzi o obydwa warianty za jednym zamachem :)
Pawel K pisze:
Edycja pliku Makefile, ale wydaje mi się, że prościej jednak utworzyć 2 projekty. Albo inaczej - napisać skrypt, który najpierw utworzy pierwszą, a następnie drugą binarkę.
Pawel K pisze:
No to w makefile wstawiasz do opcji kompilatora np. -DMAM_DS1305 a za drugim razem -DMAM_DS1307 i sprawdzasz tą definicję #ifdef'em tak jak inne kompilacje warunkowe. Warto zrobić oddzielne sprawdzenia każdej definicji zamiast klauzuli #else aby wykryć ew. niezdefiniowanie typu układu w pliku makefile.
Możesz tak napisać makefile, aby wszystkie pliki były wspólne, a tylko kod do obsługi DS1305 wzięty z pliku ds.c wpadł do ds1305.o natomiast to samo skompilowane dla DS1307 wpadło do pliku ds1307.o. Potem w spisie plików linkowanych umieszczasz ds1305.o a innym razem 1307.o i po kłopocie. Trzeba tylko powielić wywołanie linkera np. przy generacji "all:" aby zrobiły się dwa pliki wynikowe.
Adam Dybkowski pisze:
dzieki wielkie .... jak zawsze niezawodny ...
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.