在Mac上编译C ++程序以在Linux上运行

可能重复:
如何交叉编译从Mac OS X到Linux x86?

我有一个应用程序,我用C ++ / SDL编写,使用FMOD库。 该应用程序是可移植的,编译没有任何代码在Mac和Linux上的变化。 但是有一个令人烦恼的是,当我想发布Linux版本时,我必须运行我的Linux机器,在那里复制源代码(通过USB驱动器,因为我没有networking,这是一个旧的笔记本电脑)并编译它,然后复制它再次通过USB到我的Mac并上传。

我的问题是 – 有没有更好的方法呢? 理想情况下,我可以编译应用程序直接从Xcode在Linux上运行,我为Mac编译它?

在OSX上用于交叉编译Linux的快速谷歌显示此页面 。

其实,这已经在如何从Mac OS X交叉编译到Linux x86的问题? 。

看看如何交叉编译从Mac OS X到Linux x86? 以及其中的链接(它建议在Linux下运行的虚拟机上编译,可能是最好的想法,因为尝试设置交叉编译通常是不值得的工作和麻烦)。

运送duff二进制文件的风险太高,不值得打算试图在外星盒子上构建它。

每当你做一个新的发行版时,你都会明显需要一个Linux机器来测试。 因此,在这个盒子上建立它并不麻烦。 尽管使用Linux VM可能是一个好主意,因为在每次构建之前,可以确保VM处于完全相同的状态(以及已知状态)。

我假设你至少要对每个版本进行抽烟测试。

您可以将整个代码(包括所有依赖项)静态链接到一个二进制文件中,并且具有适用于Mac的版本和适用于Linux的版本。