2

我正在尝试在我的 AVR 项目中使用 AVR Crypto Lib (http://avrcryptolib.das-labor.org/trac/wiki/AES) 中的 AES 函数,但是当我复制所有必需的文件时,它给了我以下错误. 我在 Windows 上使用 WinAVR,并且在 AVR Studio 5 上也尝试过使用默认项目但没有成功。

main.o: In function `main':
c:\.../main.c:40: undefined reference to `aes128_init'
c:\.../main.c:41: undefined reference to `aes128_enc'
"make.exe": *** [main.elf] Error 1

就好像它甚至没有尝试读取确实存在这些函数的 .c 文件。网站上的示例说调用#include“aes.h”,如果您查看该文件,它会调用所有其他.h 文件。

如果我编辑 .h 文件并告诉他们包含自己的 .c 文件 - 例如在 aes_keyschedule.h 中,我告诉它包含“aes_keyschedule.c”这样的作品并使“aes128_init”消息消失但引入更多问题。最终当我到达 asm .S 文件时它不会编译。当然这不是它应该如何工作的,但我不知道其他人是如何编译的。

所以我想我会问 - 有没有其他人经历过这个,或者有没有人有一个非常简单的 AES 示例我可以看一下?也许有比 AVR Crypto Lib 更好的东西?

谢谢你,亚历克斯

4

1 回答 1

1

发现问题,只好修改makefile。

我将 SRC 更改为以下内容,一切正常:

SRC = $(TARGET).c aes128_dec.c aes128_enc.c aes_dec.c aes_enc.c aes_invsbox.c aes_keyschedule.c aes_sbox.c

另外,我将 ASRC 更改为: ASRC = gf256mul.S

于 2012-09-02T06:19:57.267 回答