在各种平台上打包C ++应用程序

时间:2014-04-16 03:43:43

标签: c++ cross-platform packaging

我一直在做各种C ++项目 - 在Qt中有几个 - 虽然我总是使用跨平台的库(Qt,OpenGL等)我不知道有什么工具用于在移动设备的各种平台上构建一个代码库。这样的服务是否存在于我可以拥有基本构建框架,围绕它进行开发,并将其发送到为Windows,Mac和几个Linux发行版构建它的服务?

2 个答案:

答案 0 :(得分:1)

希望我的短信有意义,而不仅仅是疯狂的谈话。 :)

我认为因为许多库依赖于特定于操作系统的线程,所以存在非常强大的局限性。

大多数使用某些第三方库的项目,除非所有这些库都是专门跨平台,否则该项目不再是跨平台的简单构建。

最接近的是,如果您说“如果您专门链接到标准库和/或Boost和/或Qt和/或<insert name of cross platform library>,那么将其作为服务包装在所有桌面平台上做-能。

许多脚本语言都力求达到这一点,即大多数模块和构建版本都具有相同的跨平台性能。但我偶尔也会发现一个基于通用脚本语言的开源项目,该语言只显示“unix”或“仅限windows”。通常我认为这是因为在两者之间移植线程设置很麻烦...或者项目中的某个人是一个顽固的<insert name of OS>粉丝并认为任何人都想要something不同的操作系统很疯狂。只有当特定开源工具背后的社区变得足够大并且在操作系统偏好方面足够多样化时,才会发生变化,并为多个发行版进行移植和维护。

KDE正处于支持Windows上所有应用的测试阶段。

wine在Linux上运行时,可以获取许多特定于窗口的程序。

cygwin让人们想要在他们的Windows机器上提供linux命令。

我认为这个概念中的一些服务不是做C ++,而是服务于SaaS,软件即服务。他们设置了一个运行程序的服务器和一个为浏览器提供服务的网站,然后你就可以使用跨平台程序了。然后就是Java,就是那种方向......

希望有所帮助。

答案 1 :(得分:0)

我不认为有这样的东西可以构建适用于Windows,Mac和Linux的C ++代码。您可以使用像Qt这样的跨平台库,它使您能够在包括移动设备在内的各种平台上编译代码。但要做到这一点,您应该在目标平台上编译代码或安装必要的工具链并交叉编译代码。但是所有工作,包括安装工具链和提供适当的设置都应该手动完成。

例如,您应该使用MinGW在Linux上编译Windows,或者使用cygwin在Windows上编译Linux,这需要大量工作。此外,它还取决于您要为目标平台交叉编译的主机平台。例如,如果要在Mac上对Windows进行交叉编译,则工具链广告设置与Windows上的Linux或Mac的交叉编译不同。