-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

次のプロジェクト構造がある場合:

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

于 2013-02-28T12:12:19.543 に答える