我不是一名普通的程序员,但也是必要的。我使用 tiff-4.0.3 作为我在 MacOS 10.5 下运行的 xcode 程序升级的一部分
当我构建时,我收到错误消息:
Conflicting types for 'uint64'
标记的行位于 tiff.h 中,内容如下:
typedef TIFF_UINT64_T uint64;
我在项目中可以找到的带有 TIFF_UINT64_T 的唯一另一行位于 tiffconf.h 中,内容如下:
/* 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 long
(或其某种变体),而这一行定义了 uint64
作为unsigned long
。 (这是否正确取决于编译器设置,但它与unsigned long long
不同)。
关于c - xcode 构建错误 : "Conflicting types for ' uint6 4' " makes no sense to me,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15725561/