Использование 64-битного SDK

Заранее прошу прощения, если этот вопрос сформулирован не совсем корректно, я пытаюсь добиться чего-то совершенно нового для себя и немного теряюсь.

Я пытаюсь включить Canon SDK в оболочку Objective-C, из этого абзаца я понимаю, что мне нужно было загрузить 64-битный SDK:

Чтобы использовать EOFramework в проекте, необходимо выполнить несколько шагов. Во-первых, убедитесь, что вы загрузили последнюю 64-битную версию Canon EDSDK. В настоящее время EOFramework полагается на ARC, который поддерживается только в 64-битной версии. Поэтому вы должны использовать 64-битную версию EDSDK. Также убедитесь, что вы скомпилировали или загрузили последнюю версию EOFramework в виде файла .framework.

Кстати, после выполнения инструкций ошибки, которые я получаю при создании фреймворков, связаны с 64-битной версией. Пожалуйста, смотрите прикрепленную картинку:

Ошибки

Может ли кто-нибудь указать мне способ понять это?


person Jacobo Koenig    schedule 05.08.2016    source источник


Ответы (2)


Я не уверен, что это не вызовет проблем в долгосрочной перспективе, но я нашел ответ в этом сообщении: _int64 не называет тип

Следуя этому:

Похоже, вы пытаетесь использовать специфичный для MSVC тип __int64 с GCC. Это не работает, вместо этого используйте long long.

person Jacobo Koenig    schedule 05.08.2016

Может ли кто-нибудь указать мне способ понять это?

Вам нужно отследить объявление EdsUInt64 в скачанном вами SDK и выяснить, почему компилятор не видит его при компиляции показанного вами исходного кода.

Попробуйте щелкнуть правой кнопкой мыши на EdsUInt32 (что удовлетворило компилятор) и перейти к его определению. Теперь оглянитесь, определены ли 64-битные типы в одном и том же месте? Они внутри #if конструкций? Если да, то почему условия не соответствуют действительности? И т. д. Займитесь детективной работой.

Вы также можете использовать TextWrangler/BBEdit или другой хороший редактор, чтобы выполнять быстрый поиск по нескольким файлам по всему источнику SDK, чтобы найти определения.

Если вы не найдете определений, значит, у вас неправильная версия одного из SDK, вернитесь в Canon и получите правильную версию.

Решение очень маловероятно, что вам нужно определить тип самостоятельно. Комментарии ARC, в частности, указывают на то, что у вас есть исходный код, специфичный для Mac, Canon компилирует его на Mac, поэтому маловероятно, что проблема, связанная с MS или Gnu, не сработает на Mac и т. д.

Удачной охоты!

ХТН

person CRD    schedule 05.08.2016