You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用AES加密函数AESEncrypt报undefined reference to putchar错误求助

AES加密putchar未定义报错排查方案
  • 优先检查AES依赖的三个子函数内部实现:AddRoundKey、Round、FinalRound如果用到了assert宏、调试打印、字符处理类标准库函数,这类函数的底层实现往往会隐式调用putchar,哪怕你上层逻辑没有直接调用也会引入依赖。
  • 确认编译运行环境:如果是嵌入式无操作系统场景,你使用的标准库默认开启了半主机模式,部分库分支逻辑会依赖putchar做调试输出,未自行实现putchar桩函数的情况下就会触发链接报错。可以临时添加如下空实现验证是否是该问题:
int putchar(int c) {
    return c;
}
  • 排查内存越界风险:你当前给出的AESEncrypt仅支持单16字节块加密,如果调用时paddedMessage+i、encryptedMessage+i的偏移计算错误导致栈越界,触发编译器栈保护的错误打印逻辑,也会引入putchar依赖。
  • 检查链接选项:如果编译时开启了-lgmon这类性能分析选项,性能分析的日志输出逻辑也会依赖IO类函数,关闭相关选项即可解决。

内容的提问来源于stack exchange,提问作者Aditya Karthik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:15:03