【问题标题】:`does not name a type` help, 10.6.8, using 10.4u SDK`does not name a type` 帮助,10.6.8,使用 10.4u SDK
【发布时间】:2024-01-03 04:32:01
【问题描述】:

我有一个可以自行运行的 XCode 项目。我正在尝试将它的功能整合到一个包含我们其他产品的新项目中。我收到如下错误:

'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>

在新项目中但旧项目不包含它们

这是一个使用 Adob​​e SDK 的 CS5 64 位 photoshop 插件。

【问题讨论】:

  • 你为什么不用uint8_tuint16_t等标准类型?
  • @*foe:问题表明现有代码正在集成到一个新项目中。因此,提出问题的人使用这些类型的原因是代码包含它。您可能会问为什么最初使用它们,但该代码的作者无法直接获得。
  • @EricPostpischil 或者更简单,将所有非标准类型全局更改为标准类型...

标签: c++ macos types compiler-errors adobe


【解决方案1】:

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

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

#include <Security/Security.h>

您的源代码是否使用了安全框架中的 API?还是 OpenCL?

【讨论】:

  • 不,我们不使用这些框架中的任何一个。这是一个基于 Adob​​e SDK 的项目