首页 > 其他分享 >关于undefined reference to `__stack_chk_fail'踩坑

关于undefined reference to `__stack_chk_fail'踩坑

时间:2022-11-01 17:45:58浏览次数:94  
标签:__ undefined reference chk 编译 fail stack

有这样两个源文件,main.c文件会引用sub.c内的swap函数和变量,现在将他们编译后链接

image-20221101172922068

错误做法

image-20221101173121353

​ 这是因为编译源码到目标文件时,若没有加“-fno-stack-protector”,默认会调用函数“__stack_chk_fail”进行栈相关检查,且若是手动ld去链接,没有链接“__stack_chk_fail”所在库文件,链接时必然会报此项错误

解决方法 在编译时加上“-fno-stack-protector”,强制gcc不做栈检查
image-20221101173445460

reference gcc编译怎么解决undefined reference to `__stack_chk_fail'? - 知乎 (zhihu.com)

标签:__,undefined,reference,chk,编译,fail,stack
From: https://www.cnblogs.com/chenglixue/p/16848546.html

相关文章

  • http请求状态码
    常见的请求状态码浏览器本身相关200-请求成功301、302-页面重定向304-页面与上一次请求没变化(即缓存)前端相关400- 服务器不理解的请求方式(即错误请求)401-......
  • JS学习重点-----预解析
    JS预解析JS解析器在运行JS代码时分两步: 预解析和代码执行预解析JS引擎会把JS里面所有var和function提升到当前作用域的最前面 代码执行时,按照代码书写的顺序......
  • git
    1.Git基础(1)版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内容(2)Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点将文档的状态作为更新记录保存起来,......
  • 聊一聊分布式锁的设计模型
    简介: 什么是分布式锁?对于这个问题,相信很多同学是即熟悉又陌生。随着分布式系统的快速发展与广泛应用,针对共享资源的互斥访问也成为了很多业务必须要面对的需求,这个场景下......
  • VMware 如何通过现有虚拟机克隆新的虚拟机
    下文笔者将通过实验的方式讲述VMware克隆虚拟机的方法分享,如下所示:注意事项:克隆虚拟机时,必须首先将虚拟机关机,然后对其进行克隆具体的操作步骤如下所示:进入VMware的虚......
  • Java Timer使用介绍
    java.util包下提供了对定时任务的支持,涉及2个类:Timer:定时器类TimerTask:任务抽象类使用该定时任务我们需要继承TimerTask抽象类,覆盖run方法编写任务执行代码,并利用Ti......
  • TYPE(3)—mysql执行计划(四十九)
    Simple:普通的sql查询,连接查询。Primary:union左边的表。Union:union和unionall都叫几个select,除了最左边的是primary,其他都是union。Unionresult:union去重临时表。Subquery:......
  • 云边端协同AI智能分析网关通道管理及人脸检测效果演示
    关于TSINGSEE青犀视频云-边-端-AI智能分析网关的相关功能介绍及应用场景,感兴趣的用户可以翻阅我们的历史文章进行了解。该设备内置多算法框架,支持对接入的多路视频流进行AI......
  • Extra(5)—mysql执行计划(五十一)
    前面说了有type,simple表示普通查询或者连接查询,primary代表union最左边的select,unionresult代表union查询的临时表去重,所以unionall没有去重功能,subquery代表in的子查询......
  • Select type&partitions (2)—mysql执行计划(四十八)
    前面说了explain的table是表名,显示在前面的代表驱动表,正常select会出现不同的id,但如果子查询本来是两个select,但被优化成连接查询,就会导致是相同的id,union查询会出现临时表,i......