内存大于2g的程序:
问题:
编译时候出现relocation truncated to fit: R_X86_64_PC32
原因:
allocate的矩阵大于2G
编译时:
看到一些博文中说是内存超过2G会出现问题。需要添加编译选项:-mcmodel
调整编译时的对静态数组要求的大小:-mcmodel=medium(中级) -mcmodel=large(高级)
具体编译选项添加位置:
gcc -mcmodel=medium -o stream2g_10 stream.c
运行时:
ulimit -s unlimited
谷歌云亲测成功
解决大内存矩阵编译问题:-mcmodel选项的应用
本文探讨了在编译内存超过2GB的程序时遇到的`relocation truncated to fit: R_X86_64_PC32`错误,通过介绍如何添加-mcmodel选项(如medium或large)来调整静态数组限制,并给出了编译时的具体使用方法。实践验证,谷歌云上已成功应用此技巧。
440

被折叠的 条评论
为什么被折叠?



