ios - typedef 重新定义错误 Xcode 5、iOS7 和 64 位与 32 位

标签 ios c xcode

我正在尝试使用 xcode 5 在 64 位 ios 7 中构建一个现有的 32 位项目。在使用架构 arm64 构建期间,发生 typedef 重新定义错误。 Xcode 5 llvm 编译器显示 redine 错误。在下面我发布了主要出现错误的示例代码。

#if defined (__LP64__)

typedef long int64_t;

typedef unsigned long u_int64_t;
#else

typedef long long          int64_t;
 //shows redefine error int64_t long vs long long

typedef unsigned long long u_int64_t; 
//shows redefine error u_int64_t unsigned long vs unsigned long long 
#endif

最佳答案

您只需从代码中删除这些定义即可。 两者int64_tu_int64_t已在 iOS SDK header 中定义。 (如有必要,添加 #include <stdint.h> ,这是标准 header 精确宽度整数类型。)

错误实际上发生在 编译 64 位时代码的第一部分,因为您的定义

typedef long int64_t;
typedef unsigned long u_int64_t;

与 iOS SDK 定义冲突

typedef long long       int64_t;
typedef unsigned long long  u_int64_t;

longlong long是不同的类型(但在 64 位 ARM 上大小相同)。

关于ios - typedef 重新定义错误 Xcode 5、iOS7 和 64 位与 32 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19581297/

相关文章:

iphone - 如何在 iPhone 的 View 顶部显示弹出窗口

ios - Swift 中的 CLPlacemark 崩溃

iphone - 当节点不在 View 中时,如何删除它?

c - 如何在 sync/fsync/syncfs 到可移植设备后确保数据完整性

iphone - 如何使用ldid?

iOS 9 将旋转至界面方向已弃用

iphone - 如何使用 iOS5 将 Twitter 帐户关注者访问到 iPhone?

c - 标记为只读的程序可执行文件

c - 如何使用 execl ("/usr/bin/open"...) 重新启动 macOS 中的当前程序?

ios - 通过应用程序自定义导航项