有这样两个源文件,main.c文件会引用sub.c内的swap函数和变量,现在将他们编译后链接
错误做法
这是因为编译源码到目标文件时,若没有加“-fno-stack-protector”,默认会调用函数“__stack_chk_fail”进行栈相关检查,且若是手动ld去链接,没有链接“__stack_chk_fail”所在库文件,链接时必然会报此项错误
解决方法 在编译时加上“-fno-stack-protector”,强制gcc不做栈检查
reference gcc编译怎么解决undefined reference to `__stack_chk_fail'? - 知乎 (zhihu.com)
标签:__,undefined,reference,chk,编译,fail,stack From: https://www.cnblogs.com/chenglixue/p/16848546.html