Я только что организовал свой код, используя заголовки, но так же, как я сделал это, я получил предупреждение, которое превратилось в ошибку при связывании.
У меня есть код (использование функции, которая находится внутри заголовка) в test.c
, которая выглядит следующим образом:
#include "test1.h"
/* Some code */
main()
{
Testing();
}
И мой test1.h
заголовок выглядит так:
void Testing();
void print(int, int, int, const char*);
А на test1.c
void Testing()
{
print(0xF9, 27, 5, "\xC9\\xBB");
}
void print(int colour, int x, int y, const char *string)
{
volatile char *video=(volatile char*)0xB8000 + y*160 + x*2;
while(*string != 0)
{
*video=*string;
string++;
video++;
*video=colour;
video++;
}
}
Когда я пытаюсь скомпилировать код, я получаю это:
ubuntu @ eeepc: ~ / Development / Test $ gcc -o test.o -c test.c -Wall -Wextra -nostdlib -nostartfiles -nodefaultlibs
test.c: в функции «main»:
test.c: 11: предупреждение: неявное объявление функции «Тестирование»
ubuntu @ eeepc: ~ / Разработка / Тестирование $
В то время это просто простое предупреждение, но когда я пытаюсь связать его ...
ubuntu @ eeepc: ~ / Development / Test $ ld -T linker.ld -o kernel.bin loader.o test.o
test.o: в функции main':<br>
test.c:(.text+0xfc): undefined reference to
Testing '
Что мне нужно сделать?