是否有任何开发环境允许您拥有一个代码库,可以编译到Linux,Mac OS和Windows版本而无需进行太多调整?我知道这就像要求圣杯被烧焦的地方,但也许存在这样的事情。感谢。
答案 0 :(得分:2)
这是通过许多机制实现的,最突出的是构建系统和某些系统的特定代码版本。您所做的就是编写代码,以便在需要操作系统API时调用特定的函数。例如,我可能会使用MyThreadFunction()
。现在,当我在Linux下构建时,我得到了一个调用MyThreadFunction()
的{{1}}的Linux特定版本,而Windows版本调用了pthread_create()
。适当的包含也包含在这些特定的平台文件中。
另一件事是使用跨平台提供一致接口的库。 wxWidgets是一个用于编写桌面应用程序的平台,就像Qt和GTK +一样。您使用它的任何库都值得尝试找到跨平台实现。毫无疑问,有人会在某处提到Boost。我知道的另一个系统是Apache Portable Runtime(APR),它提供了一系列允许httpd在Windows / Linux / Mac上运行的东西。
这样,您的核心代码库与平台无关 - 您的构建系统包含系统特定位,您的代码库将它们链接在一起。
现在,您可以在一个桌面上执行此操作吗?我知道你可以从Linux编译Windows,所以可能从Linux编译Mac OS X,但我怀疑你是否可以从Windows-Linux做到。无论如何,您需要测试在每个平台上构建的内容,因此我的建议是运行虚拟机(请参阅vmware / virtualbox)。
最后,编辑/环境:使用适合你的任何东西。我在Linux上使用Eclipse / GVim,在Windows上使用Visual Studio - VS是我的“Windows构建系统”。
答案 1 :(得分:1)
我听说这是可能的。您的编译器需要支持此功能。我所知道的唯一一个是GCC,但它显然需要特殊的配置。但是,我从未使用过此功能。我只看到它存在。
您要找的是“Cross Compiling”
答案 2 :(得分:1)
也许像CodeBlocks?
答案 3 :(得分:1)
Qt是一个很好的库/ API /框架,用于在C ++中执行此操作,Qt Creator是一个非常令人愉快的IDE。