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

时间:2010-06-17 09:31:44

标签: c++ linux xcode macos

  

可能重复:
  How to cross compile from Mac OS X to Linux x86?

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

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

4 个答案:

答案 0 :(得分:4)

在OSX上为Linux进行交叉编译的快速谷歌显示this page

实际上,之前曾在How to cross compile from Mac OS X to Linux x86?中询问过这个问题。

答案 1 :(得分:3)

看看How to cross compile from Mac OS X to Linux x86?及其中的链接(它建议在Linux下运行在VM中编译,可能是最好的主意,因为尝试设置交叉编译通常不值得工作和麻烦)。

答案 2 :(得分:2)

发送duff二进制文件的风险太高,不值得为在外星人盒子上构建它而烦恼。

每次进行新版本时,你都会明确需要一个Linux盒子进行测试。因此,在该盒子上构建它将毫不麻烦。使用Linux VM可能是一个好主意,因为您可以确保在每次构建之前VM处于完全相同的状态(和已知状态)。

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

答案 3 :(得分:0)

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