Piszę bibliotekę i mam problem z kompilacją warunkową, w pliku nagłówkowym mam np.:
#define USE_ST7565_CHAR 1
#define USE_ST7565_STRING 1
w pliku biblioteki mam:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
w main jest użycie funkcji st7565_write_string_8x16, podczas kompilacji mam:
Kod:
avr-gcc -Wl,-Map,LCD_ST7565.map -mmcu=atmega32 -o"LCD_ST7565.elf" ./main.o ./ST7565/ST7565.o
./main.o: In function `main':
main.c:(.text+0x38): undefined reference to `st7565_write_string_8x16'
make: *** [LCD_ST7565.elf] Error 1
czyli funkcja st7565_write_string_8x16 nie jest kompilowana
Korzystam z takiej konstrukcji ponieważ funkcja st7565_write_string_8x16 ma być kompilowana tylko wtedy, gdy USE_ST7565_CHAR = 1 i USE_ST7565_STRING = 1. W przypadku kiedy USE_ST7565_CHAR = 0 funkcja st7565_write_string_8x16 ma nie zostać skompiklowana.