c++ - 在 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?