undefined reference to `__stack_chk_guard' .. undefined reference to `__stack_chk_fail'

本文介绍了解决GCC编译器中出现的undefined reference to `__stack_chk_guard' 和 `__stack_chk_fail' 错误的方法。提供了两种解决方案:一是添加libssp库以支持GCC堆栈保护功能;二是通过修改编译参数禁用堆栈保护。同时介绍了如何在OpenWrt系统中选择并编译libssp库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 编译出错

undefined reference to `__stack_chk_guard'

undefined reference to `__stack_chk_fail'

解决方法-1:添加libssp库

libssp 包含支持GCC堆栈保护函数的程序

解决方法-2 : disable gcc  编译参数 -fstack-protector-all(启用堆栈保护), 将编译配置的-fstack-protector-all 改为 -fno-stack-protector(禁用堆栈保护) 

 

顺便记一下:openwrt 选译libssp库

make menuconfig --->Toolchain Options->Enable Stack-Smashing Protection support

退回主菜单--->Base system-->libssp

重新编译工程即可生成libssp.so*

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值