主题:在LINUX下用f77或g77编译怎么能读超100G以上的超大二进制文件
grisys
[专家分:50] 发布于 2011-06-11 11:30:00
我用FORTRAN编写的程序,在UNIX下加64位选项能读写超100G的二进制文件,现想移植到LINUX下,用f77或g77编译加啥参数才能成功,请高手老师指教!
回复列表 (共10个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2011-06-11 15:09:00
是够大的,换用gfortran试试行不行?
板凳
grisys [专家分:50] 发布于 2011-06-11 15:23:00
为了便于移植和通用性,还是用G77或f77为好!
3 楼
dongyuanxun [专家分:7180] 发布于 2011-06-11 18:49:00
[quote]
为了便于移植和通用性,还是用G77或f77为好![/quote]
我怎么觉得应该是,为了便于移植和通用性,还是用gfortran为好!
4 楼
grisys [专家分:50] 发布于 2011-06-11 21:38:00
gfortran的编译参数是啥才能读写超大文件?
5 楼
cgl_lgs [专家分:21040] 发布于 2011-06-11 23:27:00
这个不仅需要编译器支持,还需要操作系统支持,楼主很有可能需要重编译Linux的内核~~~~
不过好像需要64位版本的吧~~~~~32位的我真不确定是否能支持:)
PS:楼主那个兼容性问题确实太搞了:)
6 楼
dongyuanxun [专家分:7180] 发布于 2011-06-12 02:13:00
和编译器无关
需要3方面支持
内核支持、文件系统支持、CRT支持
前2个只要内核和系统不很旧就都支持
关于CRT,得查看glibc版本是啥,不确定支持,应该去问发行版提供商
三方面确定完了,那么
gcc/gfortran编译时加入-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
7 楼
grisys [专家分:50] 发布于 2011-06-12 07:30:00
确认的是系统是支持的,用CC加参数 -DLARGE_FILE - D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64编译C程序是能读写超100G文件的,读出的数据也没问题,但传给FORTRAN主程序就不对了,问题在用F77或G77编译的FORTRAN程序读超100G文件不对,也就是FORTRAN的编译参数不对!
8 楼
dongyuanxun [专家分:7180] 发布于 2011-06-12 15:29:00
gcc/gfortran版本分别是什么
glibc版本是什么
9 楼
cgl_lgs [专家分:21040] 发布于 2011-06-12 16:46:00
呵呵,不是说改用gfortran试试么,f77或g77我们都不用了。
10 楼
dongyuanxun [专家分:7180] 发布于 2011-06-12 16:59:00
f77和g77与gfortran对预处理宏的处理不一样,或者说我都不知道是否支持预处理宏。
gfortran与gcc都是-E的处理,所以是一样的
我来回复