0

我在带有 gcc 版本 2.96 的 i686 上使用 Red Hat Linux release 9 Kernel 2.4.20-8。我有类似的代码:

include "stdio.h"

.....
ifndef _ILP32
return fopen64 (fname, dhtype);
else
return fopen (fname, dhtype);
endif

但我收到一条错误消息:

`fopen64' 未声明(首先使用此函数)。

我希望我的操作系统是 32 位的,但它没有检测到_ILP32并且正在运行return fopen64 (fname, dhtype);,它不应该这样做。

如何让我的编译器检测到_ILP32

4

1 回答 1

0

尝试添加

#define _ILP32

用手。相同的效果已添加-D_ILP32到编译器命令行。

另一种可能性是到处改变

#ifndef _ILP32

#ifdef _ILP64

这是由 64 位系统上的 gcc 定义的。

于 2013-09-19T14:27:08.143 回答