我在i686上使用Red Hat Linux发行版9内核2.4.20-8,版本为2.96。我的代码类似于:
include "stdio.h"
.....
ifndef _ILP32
return fopen64 (fname, dhtype);
else
return fopen (fname, dhtype);
endif
但我收到错误说:
`fopen64'未声明(首先使用此功能)。
我希望我的操作系统是32位的,但它没有检测到_ILP32
,而是转到return fopen64 (fname, dhtype);
行,它不应该。{/ p>
如何让我的编译器检测到_ILP32
?
答案 0 :(得分:0)
尝试添加
#define _ILP32
手工。相同的效果是将-D_ILP32
添加到编译器命令行。
另一种可能性是到处改变
#ifndef _ILP32
到
#ifdef _ILP64
由64位系统上的gcc定义。