首页 > 解决方案 > 在 macOS 上编译 Canon SDK

问题描述

我正在尝试在 macOS 上编译一个非常基本的程序(第一次)。该程序是在佳能 SDK 的帮助下在 windows 上编写的。此 SDK 可用于 Windows 和 macOS。但是,我遇到了一个问题。SDK 包含 3 个头文件和一个链接器文件(Windows 为 .lib,mac 为 .framework)。由于我从未使用过 macOS,我首先必须弄清楚如何链接 .framework 文件。

OSX 如何使用位于当前工作目录或子目录 C/C++ 中的 GCC/G++ 编译框架

这是我在这里找到的解决方案。

但是,我仍然遇到一个问题。在其中一个文件 (EDSDK.h) 中包含 windows.h。

实际代码:

#ifdef __MACOS__
   #include <CoreFoundation/CoreFoundation.h>
#else
   #include <windows.h> <--Error
#endif

这包括给我一个错误,因为 macOS 上没有 window.h。经过一番搜索,我遇到了这个问题: 我在哪里可以获得 Mac 的 windows.h?

答案建议制作一个虚拟 windows.h 并一一满足缺失的定义。然而,这是不可能的,因为 SDK 使用了来自 windows.h 的太多定义(以及 windows.h 中包含的其他文件)以不可行。

如何编译使用 Canon SDK 的程序。我是否设置了双启动设置并链接到实际的 windows.h?

标签: c++canon-sdk

解决方案


推荐阅读