为 iOS 编译 artoolkitx-calibration: 指定了 C 链接,但 returns 用户定义类型 'cv::Size' 与 C 不兼容
Compiling artoolkitx-calibration for iOS: C-linkage specified, but returns user-defined type 'cv::Size' which is incompatible with C
我想 运行 iOS 上的 ARToolKitX Calibration app。不幸的是,该应用程序在 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 and I followed the steps in the iOS section of the build.sh
脚本下载到 link 这个 SDK 到 Xcode 项目。
我在 macOS High Sierra 10.13.3 上用 Xcode 9.3 打开了项目。
我从 SourceForge 下载了 opencv2.framework
库并 link 编辑了它:https://sourceforge.net/projects/opencvlibrary/files/opencv-ios/
Xcode 报告了 line 61 of prefs.hpp
中的一个问题:
cv::Size getPreferencesCalibrationPatternSize(void *preferences);
'getPreferencesCalibrationPatternSize' has C-linkage specified, but returns user-defined type 'cv::Size' (aka 'Size_') which is incompatible with C
如果能在此编译过程中获得更进一步的指示,我们将不胜感激!
我今天遇到了同样的问题。您需要确保您的源代码文件(通常是“.c”和“.h”文件)被解释为 C++ 头文件和源代码。对于这个特定的错误,追溯哪个文件调用了 cv::Size
并将其类型更改为 C++ header/source.
编译问题 was fixed 通过删除围绕 cv::Size
的错误生成用法的以下行:
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
我想 运行 iOS 上的 ARToolKitX Calibration app。不幸的是,该应用程序在 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 and I followed the steps in the iOS section of the build.sh
脚本下载到 link 这个 SDK 到 Xcode 项目。
我在 macOS High Sierra 10.13.3 上用 Xcode 9.3 打开了项目。
我从 SourceForge 下载了 opencv2.framework
库并 link 编辑了它:https://sourceforge.net/projects/opencvlibrary/files/opencv-ios/
Xcode 报告了 line 61 of prefs.hpp
中的一个问题:
cv::Size getPreferencesCalibrationPatternSize(void *preferences);
'getPreferencesCalibrationPatternSize' has C-linkage specified, but returns user-defined type 'cv::Size' (aka 'Size_') which is incompatible with C
如果能在此编译过程中获得更进一步的指示,我们将不胜感激!
我今天遇到了同样的问题。您需要确保您的源代码文件(通常是“.c”和“.h”文件)被解释为 C++ 头文件和源代码。对于这个特定的错误,追溯哪个文件调用了 cv::Size
并将其类型更改为 C++ header/source.
编译问题 was fixed 通过删除围绕 cv::Size
的错误生成用法的以下行:
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif