为iOS编译artoolkitx-calibration:指定C-linkage,但返回与C

时间:2018-04-30 12:50:35

标签: c++ objective-c xcode opencv artoolkit

我想在iOS上运行ARToolKitX Calibration app。不幸的是,该应用程序在App Store中不可用,因此我假设我必须自己编译它。幸运的是,我有一个活跃的Apple开发者帐户......

所以我从GitHub获得了源代码:

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

然后我从https://github.com/artoolkitx/artoolkitx/releases/download下载了ARToolKitX iOS库,并按照build.sh脚本的iOS部分中的步骤将此SDK链接到X​​code项目。

我在macOS High Sierra 10.13.3上用Xcode 9.3打开了这个项目。

我从SourceForge下载了opencv2.framework库并将其链接起来:https://sourceforge.net/projects/opencvlibrary/files/opencv-ios/

Xcode在line 61 of prefs.hpp报告了一个问题:

cv::Size getPreferencesCalibrationPatternSize(void *preferences);
  

'getPreferencesCalibrationPatternSize'指定了C链接,但返回与C不兼容的用户定义类型'cv :: Size'(又名'Size_')

非常感谢任何在此编译过程中更进一步的指针!

2 个答案:

答案 0 :(得分:0)

我今天遇到了同样的问题。您需要确保源代码文件(通常是“.c”和“.h”文件)被解释为C ++标头和源代码。对于此特定错误,请追溯哪个文件调用cv::Size并将其类型更改为C ++标头/源。

enter image description here

答案 1 :(得分:0)

编译问题was fixed通过删除cv::Size的错误生成用法的以下行:

#ifdef __cplusplus
extern "C" {
#endif

...

#ifdef __cplusplus
}
#endif