c++ - 编写跨平台程序

标签 c++ windows macos cross-platform cross-compiling

我怎样才能编写在 Windows 7、Mac OS X(也许还有 linux)上运行的程序?

我听说 Qt 是构建跨平台 GUI 的绝佳框架,但我认为每个程序版本都需要重新编译,不是吗?还有我应该在windows下编译win版,在mac os x下编译mac版,在linux下编译linux版等等?

我得到了想法和/或建议

最佳答案

底层二进制格式在每个平台上都不同,因此除非您使用虚拟机(如 Java 或 Flash),否则您将不得不在每个平台上重新编译您的程序。

一些编译器(如 GCC)允许交叉编译,但设置起来并不简单。可能最容易交叉编译的系统是 Linux(有几个开源项目设置了从 Linux 到 Windows 的交叉编译)。

对于 GUI 应用程序,这取决于语言——如果您坚持使用 C++,Qt 或 wxWindows 可能是一个合理的选择,它们在 native 窗口系统上提供了一个抽象层。

如果你可以使用 Java,它会让生活变得更简单,但是窗口系统是 Java 的而不是本地的。

另一种值得考虑的语言是带有 Lazarus 的 FreePascal——它有一个非常好的 GUI 设计器,可以编译到每个平台上的本地窗口系统(Windows 上的 WinAPI、OSX 上的 Cocoa 和 Linux 上的 GTK)。

关于c++ - 编写跨平台程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5779659/

相关文章:

macos - OSX 64 位上的 NASM 问题

c++ - 使用节点指针数组指向节点的子节点

c++ - 据我所知,这些答案都不正确。我错过了什么?

.net - Windows 上的 Percona Server 5.5 或 MariaDB

macos - 如何使用 Mac Finder 列出文件夹中的所有别名

macos - Smalltalk 是适用于 Mac OS X 的可行开发语言吗?

c++ - 我可以在 C++ 中破坏结构吗?

c++ - 将从二进制文件读取的字符串转换为整数

java - Apache Ant 安装错误的解决方法

windows - 从 Windows 通用应用程序创建 exe 文件