如何编写在Windows 7、Mac OS X(或者可能是Linux)上都能运行的程序?
我听说Qt是一个很好的跨平台GUI框架,但是我认为每个程序版本都需要重新编译,对吗?而且,我应该在Windows下编译win版本,在Mac OS X下编译mac版本,在Linux下编译linux版本等等吗?
我正在寻找想法和/或建议。
如何编写在Windows 7、Mac OS X(或者可能是Linux)上都能运行的程序?
我听说Qt是一个很好的跨平台GUI框架,但是我认为每个程序版本都需要重新编译,对吗?而且,我应该在Windows下编译win版本,在Mac OS X下编译mac版本,在Linux下编译linux版本等等吗?
我正在寻找想法和/或建议。
不确定是否必须使用C++,但Adobe Air是一个非常好的跨平台桌面开发环境,同时也在移动开发方面得到了不断增长。如果您需要一个使用Adobe Air部署到多个桌面操作系统的主要应用程序示例,请查看tweetdeck http://www.tweetdeck.com/
如果您选择这条路线,我强烈建议您还要了解Flex和Flash Builder。
当编写跨平台程序时,我要强调两个不同的问题——如何使您的代码可移植以及如何安排在各种不同平台上进行构建。
就构建方面而言,我会研究像CMake(http://www.cmake.org)这样的跨平台构建系统。您只需编写一个脚本,CMake将为特定平台生成适当的项目文件/ makefile。然后您可以像通常一样在每个平台上构建您的程序。例如,在Windows上,您可以使用CMake为您生成Visual C++项目,然后使用Visual C++实际构建可执行文件。在Linux上,您可以使用CMake生成一个makefile,然后使用g++构建可执行文件。
另一个方面是如何使您的代码可移植——关键是编写符合C++标准的代码并利用那些在您感兴趣的各种平台上都可以移植的库。您可以(有时可能需要)为每个不同的平台编写特定于该平台的代码——如果这样做,您应该将其隐藏在便携式接口背后,并让其他代码使用它。
是的,在使用C++时,您需要为每个版本编译。
唯一阻止您在Mac上编译例如Windows程序的事情是获取用于此操作的工具。这是可能的,但问题在于找到工具集。
另外,您可以使用虚拟机在同一台计算机上运行不同的操作系统,并为所有平台编译代码。
Java 可以在 Windows、OS X 和 Linux 上运行