问题描述
AFAIK,__ stack_chk_fail是一个标准库函数,在检测到堆栈粉碎时运行。如果二进制文件是使用-fstack-protector编译的,它将像printf一样链接到它?那么undefined reference to symbol '__stack_chk_fail@@GLIBC_2.4'
怎么可能?
解决方法
这是因为二进制文件未与glibc链接(如果您使用ld
作为链接器而忘记链接libc,而是使用c++
或cc
链接,则会发生这种情况),或者版本不匹配。