-2

正如标题所说,我不断收到未定义的错误引用,但我不知道为什么..

我有一个主例程,其中包含我要使用的函数的标头,因此包含在定义该函数的 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”的引用

4

1 回答 1

1

如果您有以下项目结构:

标头.h:

#ifndef _HEADER_H_
#define _HEADER_H_

int UART_write(int uart, const char* var);

#endif

主.c:

#include "header.h"

int main()
{
    ...
    UART_write(UARTvar, LVL);
    ...
}

所以请确保您没有_HEADER_H_在任何其他地方定义,因为在这种情况下UART_write()原型不会包含在 build.xml 中。

还请检查UART_write()原型是否未放置在#ifor#ifdef#endif预处理器命令之间。

最后一个,您可以通过在标题中#error "This code is compiled"的原型之前添加来检查上面的内容。UART_write()如果这部分代码被编译,那么你会得到编译错误This code is compiled

于 2013-02-28T12:12:19.543 回答