对用户定义函数的未定义引用

undefined reference to a user-defined function

本文关键字:未定义 引用 函数 用户 定义      更新时间:2023-10-16

我现在正在实现3DES,我得到了这样的错误:
日志:

Compiling 'ReadTag_new' for 'Arduino Uno PN532.cpp.o:In function PN532::example()' PN532.cpp:undefined reference to des3_set2key_dec' PN532.cpp:undefined reference to des3_set2key_enc' PN532.cpp:undefined reference to des3_crypt_cbc Error creating .elf

其中des3_set2key_decdes3_set2key_encdes3_cypt_cbc是在des.c文件中实现并在des.h文件中定义的函数,在PN532.cpp文件中我还包括des.h文件,我确信我包括了正确的文件,因为我可以使用从该文件定义的struct

我不知道这里怎么了?我在谷歌上搜索,它谈到了链接器,就像两个文件生成不同的.o文件一样,它们应该链接在一起,但我不确定在这种情况下我是

是的,您正处于这种情况。如果在多个.c或.cpp文件中有源文件,则需要编译所有这些文件并链接所有生成的.o文件。

在链接器进行链接并生成可执行文件之前,您必须拥有所有的对象文件。如果您使用的是gcc,

gcc -o executablename filename1.c filename2.c filename3.c 

将编译所有文件并进行链接,这将产生名为"executablename"的最终可执行文件。