尝试构建XCode项目以进行发布时出现Typedef重新定义错误

尝试构建XCode项目以进行发布时出现Typedef重新定义错误,第1张

概述我可以在 Xcode(4.2)中构建我的项目以进行调试而不会出现问题,但是当我想构建它以进行发布(构建用于存档)时,我得到错误:“Typedef重新定义具有不同类型(unsigned int vs unsigned long)”. 有问题的代码是: #ifdef _LZMA_UINT32_IS_ULONG typedef long Int32; typedef unsigned long UI 我可以在 Xcode(4.2)中构建我的项目以进行调试而不会出现问题,但是当我想构建它以进行发布(构建用于存档)时,我得到错误:“Typedef重新定义具有不同类型(unsigned int vs unsigned long)”.

有问题的代码是:

#ifdef _LZMA_UINT32_IS_ulONG typedef long Int32; typedef unsigned long UInt32; #else typedef int Int32; typedef unsigned int UInt32; <--error on this line#endif

你可以看到整个文件:
http://read.pudn.com/downloads166/sourcecode/zip/758136/C/Types.h__.htm

以前的定义是在CoreServices框架中的MacTypes.h中.

我有与DeBUG和Release相同的预处理器宏,我正在使用Apple的LLVM编译器3.0.当我尝试构建用于分析的项目时,会发生同样的错误.

知道为什么会这样吗?

解决方法 在你收到错误的情况下(编译32位时),你已经有了相应的

typedef unsigned int UInt32; <--error on this line

(因此错误)所以你可以删除有问题的行.

显然不是所有的源都包含/导入MacTypes.h,所以要两种方式,用#ifdefs包围违规行,如下所示:

#ifndef __MACTYPES__typedef unsigned int UInt32;#endif

不幸的是,这并不完美;你必须确保如果包含MacTypes.h,它会在此之前发生.确保这一点的一种方法是在本地#imports之前进行系统#imports.

总结

以上是内存溢出为你收集整理的尝试构建XCode项目以进行发布时出现Typedef重新定义错误全部内容,希望文章能够帮你解决尝试构建XCode项目以进行发布时出现Typedef重新定义错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1014737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存