mac c语言 转win,C ++跨平台开发(Windows和Mac OS)

我有一项新任务要研究满足我们内部需求的C ++跨平台(Mac / Win)实用程序的开发方式。

我已经使用7种不同的"粉红色"语言(例如C#,Java,Managed C ++)进行了开发。

但是在此任务中,要求是支持Mac,而在Mac上运行的.NET确实很痛苦(请其他使用过此工具的人知道这一点)。

因此,我已经开始考虑C ++,是否可以将C ++用于跨平台开发。

该应用程序将不包含任何GUI,但将包含许多System API调用以及许多业务逻辑分析。

是否有可能允许实现此类任务的库?

有可能做到吗?

C ++似乎是一个不错的选择。 使用现代编译器(GCC或Clang,最新版本),使用C ++ 11和标准库。 如果您需要更多资源,可以使用几个库集合,至少检查一下Boost和POCO。

老兄,对这个愚蠢的问题感到抱歉,很遗憾,我不知道本地编译的工作方式,但是我的意思是,如果我要调用简单的CreateProcess winApi函数,它将在两个平台上都适用吗?

它不会直接起作用,这就是为什么您使用库来封装平台之间的差异的原因,例如 std::thread将在编译器及其标准库支持的所有平台上创建一个新线程。

是的,您可以编写标准的ISO C ++并在两个平台上运行程序。

当您需要使用平台特定的API(例如,在Windows上使用Win32和Mac OS上的POSIX API)来实现某些功能时,您要做的是编写自己的包装函数,以抽象出特定于平台的细节,然后在其余部分中使用该包装您的程序。

诸如CMake之类的工具将使您可以使用Visual Studio在Windows上构建程序,而在Mac上构建Xcode,而不必手动管理单独的Visual Studio和Xcode项目文件。

如果我正确理解了您的问题,那么开发跨平台c ++所需的唯一事情就是获得正确的编译器。您可以在两个平台上都使用GCC,甚至可以为Visual Studio和xcode使用2个不同的项目文件。随你(由你决定。就个人而言,我更喜欢GCC。

关于代码本身,这取决于您对代码的处理方式。 STD在两个平台上都可用(std :: vector,std :: string等),因此代码应在两个平台上正确编译。

编辑:顺便说一句,大多数平台特定的东西都可以通过开源代码获得(例如boost,尽管我个人不喜欢boost太多)。如果需要,您甚至可以查看跨平台的其他开源项目(ogre3d等)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值