我正在使用 C 语言中的 libnfc 库为 NFC 编程。我正在使用我按照本教程安装的 TDM-GCC MinGW 编译器和 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'"
谁能弄清楚我做错了什么?请记住,我还有其他一些没有源文件的头文件,只有变量定义,它们的编译没有问题。这是唯一的头文件源文件导入,它不起作用。有人看到问题吗?