Я получаю ошибки с компоновщиком, такие как:
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.)
Дайте мне знать, если кто-то хочет увидеть источники большего количества файлов. Я не хотел переполнять эту страницу.