You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下MinGW交叉编译C程序出现__strcpy_chk未定义引用错误

问题分析与解决

你遇到的undefined reference to '__strcpy_chk'错误,并非Linux版MinGW缺少该函数,而是交叉编译环境下的链接配置或编译选项问题:

  • __strcpy_chk是GCC安全增强特性(_FORTIFY_SOURCE)生成的安全版本字符串拷贝函数,属于Stack Smashing Protector(SSP)库的一部分。
  • 你的交叉编译环境中,libmingwex.a的代码引用了该函数,但编译/链接时未自动关联对应的SSP库。

解决方案

方案1:关闭安全增强编译选项

编译时添加-D_FORTIFY_SOURCE=0,让GCC生成普通的strcpy调用,避免依赖__strcpy_chk:

x86_64-w64-mingw32-gcc -D_FORTIFY_SOURCE=0 your_code.c -o your_program.exe

方案2:显式链接SSP库

编译时添加-lssp或-lssp_nonshared参数,手动关联SSP库:

x86_64-w64-mingw32-gcc your_code.c -o your_program.exe -lssp

方案3:检查并安装缺失的MinGW组件

确认Fedora系统中已安装MinGW的SSP相关包,比如:

sudo dnf install mingw64-libssp

内容的提问来源于stack exchange,提问作者MrKleeblatt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 19:56:59