Получавам грешки с линкера като:
osd.o(.ndata+0x514):C:\Documents and Settings\Thomas\My Documents\PIC\dsPIC33FJ128GP802\On Screen Display\osd.c: multiple definition of `video_buff_vis_num'
main.o(.ndata+0x0):C:\Documents and Settings\Thomas\My Documents\PIC\dsPIC33FJ128GP802\On Screen Display\main.c: first defined here
osd.o(.ndata+0x515):C:\Documents and Settings\Thomas\My Documents\PIC\dsPIC33FJ128GP802\On Screen Display\osd.c: multiple definition of `video_buff_draw_num'
main.o(.ndata+0x1):C:\Documents and Settings\Thomas\My Documents\PIC\dsPIC33FJ128GP802\On Screen Display\main.c: first defined here
osd.o(.ndata+0x516):C:\Documents and Settings\Thomas\My Documents\PIC\dsPIC33FJ128GP802\On Screen Display\osd.c: multiple definition of `vid_format'
main.o(.ndata+0x2):C:\Documents and Settings\Thomas\My Documents\PIC\dsPIC33FJ128GP802\On Screen Display\main.c: first defined here
osd.o(.ndata+0x518):C:\Documents and Settings\Thomas\My Documents\PIC\dsPIC33FJ128GP802\On Screen Display\osd.c: multiple definition of `vid_line'
main.o(.ndata+0x4):C:\Documents and Settings\Thomas\My Documents\PIC\dsPIC33FJ128GP802\On Screen Display\main.c: first defined here
Това ме притеснява, защото в изходния код съм включил предпазители около единственото място, откъдето могат да дойдат тези дефиниции.
#ifndef OSD_H
#define OSD_H
// code here, including definitions for the above
#endif // OSD_H
Това ми лази по нервите. Почистих, възстанових и опитах отново. Дори започнах нов проект от нулата със същите файлове и получавам точно същия проблем! Някой би ли ме просветлил защо това не работи! :)
Компилиране с PIC-GCC v3.23 (версия на GCC за PIC24F/H и dsPIC30F/33F микроконтролери.)
Кажете ми, ако някой иска да види източниците на още файлове. Не исках да претрупвам тази страница.