Компиляция artoolkitx-калибровки для iOS: C-linkage указан, но возвращает определенный пользователем тип ‘cv :: Size’, который несовместим с C

Я хотел бы запустить Приложение ARToolKitX Calibration на iOS. К сожалению, приложение недоступно в App Store, поэтому я предполагаю, что мне придется скомпилировать его самостоятельно. К счастью, у меня есть активная учетная запись Apple Developer …

Итак, я получил исходный код от GitHub:

git clone https://github.com/artoolkitx/artoolkitx-calibration
cd artoolkitx-calibration

Затем я загрузил библиотеку ARToolKitX для iOS из https://github.com/artoolkitx/artoolkitx/releases/download и я следовал за шагами в разделе iOS из build.sh скрипт для связи этого SDK с проектом Xcode.

Я открыл проект с Xcode 9.3 на macOS High Sierra 10.13.3.

Я скачал opencv2.framework библиотека из SourceForge и связал ее: https://sourceforge.net/projects/opencvlibrary/files/opencv-ios/

Xcode сообщил о проблеме в линия 61 prefs.hpp:

cv::Size getPreferencesCalibrationPatternSize(void *preferences);

‘getPreferencesCalibrationPatternSize’ имеет указанное C-linkage, но возвращает пользовательский тип ‘cv :: Size’ (он же ‘Size_’), который несовместим с C

Любой указатель, чтобы сделать шаг вперед в этом процессе компиляции, будет принята с благодарностью!

0

Решение

У меня была такая же проблема сегодня. Вы должны убедиться, что ваши файлы исходного кода, обычно файлы .c и .h, интерпретируются как заголовки и источники C ++. Для этой конкретной ошибки проследите, какой файл вызывает cv::Size и измените его тип на заголовок / источник C ++.

введите описание изображения здесь

0

Другие решения

Вопрос компиляции был исправлен удалив следующие строки вокруг генерирующего ошибки использования cv::Size:

#ifdef __cplusplus
extern "C" {
#endif

...

#ifdef __cplusplus
}
#endif
0

По вопросам рекламы [email protected]