2013-03-26 62 views
-1

我有一个自己工作的XCode项目。我正在尝试将它的功能整合到一个新的项目中,这个项目与我们其他产品的兼容性。我得到如下错误:`不命名类型`的帮助,10.6.8,使用10.4u SDK

'uint8' does not name a type 

'uint16' does not name a type 

'uint32' does not name a type 

但我不知道为什么。它被用作:

typedef uint8 SPUInt8; 
typedef uint16 SPUInt16; 
typedef uint32 SPUInt32; 

我找不到错在哪里。我使用与原始项目相同的标题和来源。我一直在构建设置,以确保它们匹配。

我以为它可能是SDL.h但在OSX上不存在。我也曾尝试包括

#include <stdlib.h> 
#include <sys/types.h> 
在新项目

但旧项目不包括他们

这是使用Adobe SDK中的CS5 64位的Photoshop插件。

+1

为什么不使用标准类型'uint8_t','uint16_t'等? – trojanfoe 2013-03-26 16:47:41

+1

@trojanfoe:该问题指出现有代码正在被集成到一个新项目中。因此,提出问题的人使用这些类型的原因是因为代码包含它。你可能会问为什么他们最初被使用,但该代码的作者并不是直接可用的。 – 2013-03-26 16:52:14

+0

@EricPostpischil或者更容易,全球范围内将所有非标准类型更改为标准类型...... – trojanfoe 2013-03-26 18:11:50

回答

0

这些类型在OpenCL框架(特别是在/System/Library/Frameworks/OpenCL.framework/Versions/A/Resources/cl_kernel.h)和安全框架(特别是在/ System/Library/Frameworks/Security.framework /版本/ A /接头/ cssmconfig.h)。我不知道他们为什么在这些特定的框架中。

添加此行到您的源文件将定义类型:

#include <Security/Security.h> 

请问你的源代码看起来使用API​​的安全框架?还是OpenCL?

+0

不,我们不使用这两种框架之一。这是一个基于Adobe SDK – Jason 2013-03-26 17:03:51

+0

的项目,但补充说确实解决了错误。 – Jason 2013-03-26 17:15:12