C言語でlibnfcライブラリを使用してNFCのプログラミングをしています。コードをビルド/コンパイルするために、このチュートリアルに従ってインストールした TDM-GCC MinGW Compiler と CMAKE オープン ソース ビルド システムを使用しています。ソース ファイルを持つヘッダー ファイルをインクルード/インポートするプログラムをコンパイルしようとしています。ヘッダー ファイル (card_objects.h) の一部は次のとおりです。
#ifndef CARD_OBJECTS_H_
#define CARD_OBJECTS_H_
... //other code
int setApplicationID(uint8_t *rapdu, char tag[], int currentPos);
#endif
ソース コード ファイル (card_objects.c) の一部は次のとおりです。
#include "card_objects.h"
... //other code
int setApplicationID(uint8_t *rapdu, char tag[], int currentPos)
{
... //other code
return currentPos;
}
両方のファイルは、メイン ファイルに対する現在のパスの include_dir/ ディレクトリにあります。次のように、メイン プログラム ファイルでヘッダー ファイルを呼び出しました。
#include "include_dir/card_objects.h"
... //othercode
int main(int argc, const char *argv[])
{
.... //other code
currentPos = setApplicationID(rapdu, "Application ID (AID): ", currentPos);
... //other code
}
上記のプログラムを自分のコンピューターでコンパイルしようとすると、次のエラーが発生します。
"... main_file.c:200: undefined reference to 'setApplicationID'"
私が間違っていた可能性があることを誰かが理解できますか?ソースファイルがなく、変数定義だけの他のヘッダーファイルがいくつかあることに注意してください。これらは問題なくコンパイルされています。これは、ヘッダー ファイルからソース ファイルへの唯一のインポートであり、機能していません。誰でも問題が発生しますか?