【问题标题】:packaging a C++ applications on various platforms在各种平台上打包 C++ 应用程序
【发布时间】:2014-04-16 03:43:42
【问题描述】:

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

【问题讨论】:

    标签: c++ cross-platform packaging


    【解决方案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,也是同一个方向……

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2022-10-05
        • 1970-01-01
        • 2011-01-24
        • 2013-02-20
        • 2016-09-19
        • 1970-01-01
        • 2011-12-23
        • 2013-11-28
        • 2014-02-24
        相关资源
        最近更新 更多