在各种平台上封装C++应用程序

packaging a C++ applications on various platforms

本文关键字:封装 C++ 应用程序 平台      更新时间:2023-10-16

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

希望我的胡言乱语有意义,而不仅仅是疯狂的谈话。:)

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

大多数使用一些第三方库的项目,除非所有这些库都是特定的跨平台的,否则该项目不再是跨平台的轻松构建。

最接近的情况是,如果你说,"如果你只链接到标准库和/或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,它有点朝着同样的方向。。。

希望能有所帮助。

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

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