【发布时间】:2021-01-26 04:57:19
【问题描述】:
AFAIK,__stack_chk_fail 是一个标准库函数,在检测到堆栈粉碎时运行。如果使用 -fstack-protector 编译二进制文件,它会像 printf 一样链接到它?那么undefined reference to symbol '__stack_chk_fail@@GLIBC_2.4' 怎么可能呢?
【问题讨论】:
-
“是标准库函数”。哪个标准定义它?
-
它没有出现在 C18 标准文档中 - 编辑 - 标记了两种不同的语言!
-
这绝对不是一个标准函数,但它是一个常见的扩展。
-
@n.'pronouns'm。 code.woboq.org/userspace/glibc/debug/stack_chk_fail.c.html那是什么功能呢?
-
@MarcoBonelli 它没有说明为什么它可能是未定义的。