Компиляция artoolkitx-калибровки для iOS: C-linkage указан, но возвращает пользовательский тип 'cv :: Size', который несовместим с C - PullRequest
0 голосов
/ 30 апреля 2018

Я бы хотел запустить приложение 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-связь, но возвращает пользовательский тип 'cv :: Size' (он же 'Size_'), который несовместим с C

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

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

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

#ifdef __cplusplus
extern "C" {
#endif

...

#ifdef __cplusplus
}
#endif
0 голосов
/ 30 апреля 2018

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

enter image description here

...