首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >混合碳和可可,然后其他平台怎么办?

混合碳和可可,然后其他平台怎么办?
EN

Stack Overflow用户
提问于 2009-07-16 15:33:09
回答 2查看 388关注 0票数 2

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

  1. OS并使用碳。
  2. Windows使用win32 API,不使用MFC。
  3. 在C++ (.cpp)

我的问题是:

  1. 对于OS版本,苹果正在丢弃64位碳,所以我能在这个库中混合碳和可可类吗?我是否只是将所有文件更改为.mm (对于Cocoa所需的目标-C)?
  2. 如果我更改为.mm,这对Windows编译有什么影响?
  3. 如果我更改为.mm,它将如何影响Linux?

有人能提供一些关于如何完成这项任务的洞察力吗?

EN

回答 2

Stack Overflow用户

发布于 2009-07-16 15:51:13

我想真的建议不要混合目标C和C++。虽然在OS上,它们都是由GCC编写的,从而使之成为可能,但碳库和可可库并不是真正的混合。Carbon和Cocoa都是完全独立的窗口库。然而,在OSX10.2中,可以将它们混合在窗口级别(碳应用程序可以托管Cocoa窗口),任何超过10.2的内容都应该能够将库混合到小部件级别。因此,如果您的库的所有用户都在使用OS的更新版本,则有可能.我还是不推荐。另外,你必须链接到所有这些额外的代码。

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

代码语言:javascript
复制
gcc -x c++ [sourcefile]
票数 1
EN

Stack Overflow用户

发布于 2009-07-16 15:53:44

苹果公司发布了一款不错的关于混合碳和可可的指南。基本上这两个是正交的,所以你可以混合它们。

无论如何,我不认为把你的.cpp改成.mm是个好主意,也不把C++和Objective混在一起。只需在单独的.m文件中迁移到Cocoa即可。

编辑:如果您将.cpp更改为.mm,您将不再编译其他平台上的文件。所以我的建议是创建新的可可类。其中一些当然会引用一些c++代码,包括c++头。它们将具有.mm扩展。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1138457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档