MINGW 13.1 x64执行strtok示例代码崩溃问题求助
解决思路
检查Code::Blocks编译器工具链配置
确保x64版MinGW的bin、lib、include路径完全独立,没有和x32版或CB自带编译器的路径交叉。在CB的「Settings → Compiler → Toolchain executables」里逐个核对路径,确认所有工具(gcc、g++、ld等)都指向MinGW 13.1 x64的对应文件。调整编译选项
添加-std=c11或-D_POSIX_C_SOURCE=200809L强制使用标准C库行为;尝试关闭优化(添加-O0),排除优化导致的代码异常;还可以加上-static选项静态链接标准库,避免动态库版本冲突。调试定位崩溃原因
用Code::Blocks的调试功能运行程序,查看崩溃时的调用栈:- 在
printf("%s\n", pch);行设置断点,运行到此处时检查pch的内存地址和内容是否合法 - 尝试用
puts(pch)替换printf,验证是否是格式化输出函数的调用问题 - 检查x64编译器的调用约定设置,确保使用默认的
cdecl(MinGW默认应为该约定,可确认配置)
- 在
重新安装MinGW 13.1 x64
确认下载的是完整的MinGW-w64包(注意区分x86_64和i686版本),避免安装包缺失关键库文件。建议直接下载官方构建的完整压缩包,解压后重新配置到Code::Blocks中。
内容的提问来源于stack exchange,提问作者BagOfTricks
相关产品推荐
相关产品推荐

