xcode生成错误:";'的冲突类型;uint64&x27&引用;对我来说毫无意义

xcode生成错误:";'的冲突类型;uint64&x27&引用;对我来说毫无意义,c,xcode,C,Xcode,我不是一个普通的程序员,但有必要。我正在使用tiff-4.0.3作为升级到MacOS 10.5下运行的xcode程序的一部分 生成时,我会收到错误消息: “uint64”的冲突类型 标记的行位于tiff.h中,内容如下: typedef TIFF_UINT64_T uint64; /* Unsigned 64-bit type */ #define TIFF_UINT64_T unsigned long 在使用TIFF_UINT64_T的项目中,我能找到的唯一一行代码位于tiffconf.

我不是一个普通的程序员,但有必要。我正在使用tiff-4.0.3作为升级到MacOS 10.5下运行的xcode程序的一部分

生成时,我会收到错误消息:

“uint64”的冲突类型

标记的行位于tiff.h中,内容如下:

typedef TIFF_UINT64_T  uint64;
/* Unsigned 64-bit type */
#define TIFF_UINT64_T unsigned long
在使用TIFF_UINT64_T的项目中,我能找到的唯一一行代码位于tiffconf.h中,内容如下:

typedef TIFF_UINT64_T  uint64;
/* Unsigned 64-bit type */
#define TIFF_UINT64_T unsigned long
无论如何,这个错误对我来说毫无意义。有大量类似的定义,其中没有一个标记相同的错误。库libtiff.la是否可能有冲突的定义?有没有办法检查一下?我无法让NM或otool显示库中的内容

除此之外,我不知道该去哪里找。我已经做了几次配置/制作/安装,以防过程中出现遗漏,但都没有用

typedef TIFF_UINT64_T  uint64;
这定义了一个名为
uint64
的新类型。但是,很可能您正在使用的另一个库定义了
uint64
,因为它是一个非常常见的类型名

在注释了
tiff.h
#include
之后,尝试要求Xcode向您显示
uint64
的定义,以查看它的其他定义


这些类型可能会发生冲突,因为
uint64
通常被定义为
unsigned long
(或其某些变体),此行将
uint64
定义为
unsigned long
。(这是否正确取决于编译器设置,但与
unsigned long long
不同)。

在我看来,这在定义此类型的
libtiff
和Apple库中都是一种糟糕的编码实践

例如,在
/System/Library/Frameworks/Security.framework/Headers/cssmconfig.h
中定义了类型
uint64

修复此问题的最佳方法可能是修补
libtiff
,以使用
uint64\u t
而不是
无符号long

(我将错误报告提交给了。)