0

如果这个问题没有很好地表达,我很抱歉,我正在努力实现一些对我来说很新的东西,我有点迷茫。

我正在尝试在 Objective-C 包装器中包含一个 Canon SDK,我从这段中了解到我需要下载 64 位 SDK:

为了在项目中使用 EOSFramework,需要采取一些步骤。首先,确保您已下载最新的 Canon EDSDK 64bit。EOSFramework 目前依赖于仅在 64 位中支持的 ARC。因此您必须使用 64 位版本的 EDSDK。还要确保您已将最新版本的 EOSFramework 编译或下载为 .framework 文件。

顺便说一句,在按照说明进行操作后,我在构建框架时遇到的错误与 64 位有关。请看附图:

错误

有人可以指出我解决这个问题的方法吗?

4

2 回答 2

0

I'm not sure if this won't bring a problem in the long run, but I found an answer in this post: _int64 does not name a type

Following this:

It looks like you you are trying to use MSVC specific __int64 type with GCC. That does not work, use long long instead.

于 2016-08-05T15:14:55.023 回答
0

有人可以指出我解决这个问题的方法吗?

您需要跟踪EdsUInt64 您下载的 SDK 中的声明,并找出编译器在编译您显示的源代码时看不到它的原因。

尝试右键单击EdsUInt32(编译器很满意)并跳转到它的定义。现在环顾四周,是不是在同一个地方定义了 64 位类型?它们在#if构造内部吗?如果是这样,为什么条件不成立?等等。做一些侦探工作。

您还可以使用 TextWrangler/BBEdit 或其他优秀的编辑器对所有 SDK 源进行快速多文件搜索以查找定义。

如果您没有找到定义,那么您的 SDK 版本之一是错误的,请返回佳能并获得正确的版本。

解决方案不太可能是您需要自己定义类型。ARC 注释特别表明您确实有 Mac 特定的源代码,佳能在 Mac 上编译它,所以它不太可能是 MS 或 Gnu 特定的问题在 Mac 等上失败。

好狩猎!

高温高压

于 2016-08-05T17:04:50.103 回答