Как следует из названия, я получаю неопределенную ссылку на ошибку, но я не знаю почему ..
У меня есть основная подпрограмма, в которой есть заголовок функции, которую я хочу использовать, поэтому она включена в файл cpp, который определяет функцию.
Я также включил путь к настройкам проекта
Я знаю, что должен опубликовать код, но мне не разрешено это делать, но все же надеюсь, что смогу получить некоторые подсказки по решению этой ошибки.
заранее спасибо
UART_write(UARTvar, LVL); //This is where I call the function
int UART_write(int uart, const char* var);//Declaration in the header
int UART_write(int uart, const char* var)
{
return (int)1;//just for testing
}
неопределенная ссылка на `UART_write ‘
Если у вас есть следующая структура проекта:
header.h:
#ifndef _HEADER_H_
#define _HEADER_H_
int UART_write(int uart, const char* var);
#endif
main.c:
#include "header.h"
int main()
{
...
UART_write(UARTvar, LVL);
...
}
Поэтому, пожалуйста, убедитесь, что вы не определили _HEADER_H_
в любом другом месте, как в этом случае UART_write()
прототип не будет включен в сборку.
Также, пожалуйста, проверьте, если UART_write()
прототип не помещается между #if
или же #ifdef
а также #endif
команды препроцессора.
И последний, вы можете проверить выше, добавив #error "This code is compiled"
перед UART_write()
прототип в вашем заголовке. Если эта часть кода скомпилирована, то вы получите ошибку компиляции This code is compiled
,
Других решений пока нет …