From: Maarten F. <m.f...@de...> - 2007-01-17 16:50:23
|
Hi, I'm suffering a rather strange (at least to me) error: error: missing definition for symbol "_ADCON2", required by "main.o" It seems to refer to the following command in the main() routine in main.c, since when I remove this command the error is no longer present. ADCON2 = 0x01; I have been looking for a clue and I discovered (using the -V option of sdcc) that the pic18f452.lib is used by gpasm and gplink instead of pic18f4220.lib. I am unsure why this is used since I 'define' that I want to use a pic18f4220 as following: #define __18f4220 I am using the following command to compile my code: sdcc -I ../lib -I ./ -I ../ -mpic16 --optimize-df --optimize-cmp \ --optimize-goto --fstack --obanksel=2 -Wl -s../lib/linker.lkr -V main.c And the result of this command is: + "/usr/bin/sdcpp" -nostdinc -Wall -std=c99 -I"../lib" -I"./" -I"../" -Dpic18f452 -D__18f452 -DSTACK_MODEL_SMALL -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=260 -DSDCC_pic16 -D__pic16 -I"/usr/bin/../share/sdcc/include/pic16" -I"/usr/share/sdcc/include/pic16" -I"../lib" -I"./" -I"../" "main.c" + "/usr/bin/gpasm" -DSDCC_MODEL_SMALL -Dpic18f452 -D__18F452 -DSTACK_MODEL_SMALL -c "main.asm" -o "main.o" + "/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib/pic16" -I"/usr/share/sdcc/lib/pic16" -s../lib/linker.lkr -o main main.o crt0i.o pic18f452.lib libsdcc.lib error: missing definition for symbol "_ADCON2", required by "main.o" I have attached main.c in which my main() routine resides. I hope one of you has a clue, because I am running out of them, Thanks for the help to come :), Maarten Faddegon |