C++ 编译C++;Mac上运行Linux的程序

C++ 编译C++;Mac上运行Linux的程序,c++,linux,xcode,macos,C++,Linux,Xcode,Macos,可能重复: 我有一个用C++/SDL编写的应用程序,使用FMOD库。该应用程序是可移植的,在Mac和Linux上编译时无需任何代码更改。但一个烦恼是,当我想发布Linux版本时,我必须运行我的Linux机器,在那里复制源代码(通过USB驱动器,因为我在那里没有网络,它是一台旧笔记本电脑),然后编译,然后再通过USB将其复制到我的Mac上并上传 我的问题是——有没有更好的方法?理想情况下,我是否可以直接从Xcode编译应用程序以在Linux上运行,我在Xcode中为Mac编译应用程序?一个用于在

可能重复:

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


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

一个用于在OSX上交叉编译Linux的快速google发布了


实际上,这在以前的中已经被问过了。

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

看看其中的链接(它建议在虚拟机中运行Linux下编译,这可能是最好的主意,因为尝试设置交叉编译通常不值得费心费力)。

运送无用二进制文件的风险太高,不值得费心在外星机器上构建它

很明显,每次发布新版本时,您都需要一个Linux机箱来进行测试。因此,在该机箱上构建它并不麻烦。不过,使用Linux虚拟机可能是一个好主意,因为在每次构建之前,您可以确保虚拟机处于完全相同的状态(和已知状态)


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

看,这个问题似乎是一个完全重复的问题,为什么还没有关闭?答案是使用虚拟机,例如使用VirtualBox。这似乎非常适合您的使用。这个问题不是重复的,因为另一个问题没有说明在Xcode上。这个问题的答案是,你可以使用Cocotron轻松地从Xcode交叉编译。这里有一个很好的指南:好的,但是我如何在Xcode中使用它呢?你没有,你的编译就像你现在在VMI中做的一样。第一个链接死了