gpt4 book ai didi

cocoa - 混合 Carbon 和 Cocoa 那么其他平台呢?

转载 作者:行者123 更新时间:2023-12-03 16:39:53 25 4
gpt4 key购买 nike

我有一个静态库,它在 OS X 和 Windows 版本之间共享大量源代码。两个版本都使用 CMAKE。由于最近的请求,我考虑了 linux 版本。

  1. OS X 并使用 Carbon。

  2. Windows 使用直接的 win32 API,无 MFC

  3. 使用 C++ (.cpp) 编写

我的问题是:

  1. 对于 OS X 版本,Apple 放弃了 64 位 Carbon,那么我可以在这个库中混合使用 Carbon 和 Cocoa 类吗?我是否只需将所有文件更改为 .mm(对于 Cocoa 所需的 Objective-C)

  2. 如果我更改为 .mm,这会如何影响 Windows 编译?

  3. 如果我更改为 .mm 对 Linux 有何影响?

任何人都可以提供有关如何完成此任务的一些见解吗?

最佳答案

真的建议不要混合使用 Objective-C 和 C++。尽管在 OS X 上它们都是由 GCC 编译的,因此可以实现这一点,但 Carbon 和 Cocoa 库并不是真正要混合的。 Carbon 和 Cocoa 都是完整且独立的窗口库。然而,在 OS X 10.2 中,可以在窗口级别混合它们(Carbon 应用程序可以托管 Cocoa 窗口),并且任何高于 10.2 的版本都应该能够将库混合到小部件级别。因此,只要您的库的所有用户都使用 OS X 的更新版本,就有可能......我仍然不推荐它。另外,您还必须链接所有额外的代码。

更改为 .mm 的效果实际上取决于您的编译器。我猜您使用的是 gcc,因为您的库将适用于所有三个平台,因此在 gcc 上,.mm 代码可以编译为 C++,如下所示。

gcc -x c++ [sourcefile]

关于cocoa - 混合 Carbon 和 Cocoa 那么其他平台呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1138457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com