Linux下编译程序使其处理超过2G的大文件


Linux下为使程序可以处理大文件的能力,在文件中可以添加:

#define -D_LARGEFILE_SOURCE

#define -D_LARGEFILE64_SOURCE

#define -D_FILE_OFFSET_BITS=64

在gcc编译时,加入的大文件(大于2G)支持参数:

gcc -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -o x.o x.c

这些编译参数让编译后的程序支持64bit的系统调用操作,从而使程序处理没有2G文件的限制。

若使用Makefile,这些参数需用在编译命令中:

CXXFLAGS    = -static -g -c -I$(INCLUDEDIR) -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64

gcc  $(CXXFLAGS) $(SOURCEFILE)

相关内容