使用gcc 2.96在unix机器中使用_ILP32问题

时间:2013-09-19 14:01:26

标签: rhel gcc

我在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

1 个答案:

答案 0 :(得分:0)

尝试添加

#define _ILP32

手工。相同的效果是将-D_ILP32添加到编译器命令行。

另一种可能性是到处改变

#ifndef _ILP32

#ifdef _ILP64

由64位系统上的gcc定义。