我们有一个项目,我们在其中使用 SketchUp 8 C++ API 从 SketchUp 文件中提取信息。SketchUp 团队成员告诉我们,可以使用与 SketchUp 2013 SDK 捆绑的已弃用 C++ 框架来使用已弃用的 C++ API 读取 SKP 2013 文件。这不是开箱即用的,目前还不清楚我做错了什么。我将我的问题发布在 stackoverflow 上,以防它对其他人有用。
我在 Mountain Lion 上使用 XCode 3.2.2 构建我的项目,构建到 OS 10.5 i386 的基础 SDK。
我删除了我的 XCode 项目的 SketchUp.framework 和 SketchUpReader.framework,并添加了包含在 SKP 2013 SDK 的 deprecated/SkpReader/Binaries/Mac/ 文件夹中的那些。执行“清理所有目标”并构建会产生数千个错误。一些例子:
.../SketchUpReader.framework/Headers/Variant.h:79: error: multiple definition of 'enum VARENUM'
.../SketchUpReader.framework/Headers/windef.h:217: error: variable or field 'Sleep' declared void
.../SketchUpReader.framework/Headers/comptr.h:17: error: redefinition of 'class _NoAddRefReleaseOnCComPtr<T>'
大多数错误都属于这种形式 - 有些东西有以前的定义。
我的第一个想法是它仍然在某个地方包含旧版本的 C++ 框架,并且新旧版本存在冲突,但我在 Xcode 项目的框架列表或 /库/框架。
我不太精通构建 C++ 项目或使用 XCode,所以这可能是一个天真的问题,但如果有人知道这里发生了什么,我会很感激一些指导。