将a.out发送给某人

时间:2009-08-05 22:45:26

标签: linux macos executable

  

可能重复:
  Is a Linux executable “compatible” with OS X?

我在os x上使用GLUT和OpenGL编译了一些c ++代码。 一切正常。我把它作为a.out

有没有办法将这个发送给使用os x的人?会有一些奇怪的依赖吗? 我可以将它发送给使用linux的人吗?

我怀疑我能做什么,这就是我在这里要求的原因。我在谷歌上环顾四周但找不到任何有用的东西,我可能没有找到合适的东西

感谢

3 个答案:

答案 0 :(得分:10)

OS X和Linux有完全不同的二进制格式(分别是Mach-O / Universal Binary和ELF),所以不,在OS X上编译的程序不能在Linux上运行,除非你交叉编译它。

如果您使用静态链接编译代码,那么另一个OS X用户将能够正常使用它。但是,请记住我对GLUT或OpenGL知之甚少,我敢打赌那些是动态库的好东西,因此无论你将它发送给谁都需要在同一个地方安装相同的库才能成为能够使用您编译的代码。

otool -L将显示您的可执行文件的链接依赖项,仅供参考。

答案 1 :(得分:1)

应该将它发送给使用相同版本的OS X和与您相同的计算机芯片的人。甚至可能在OS X上交叉编译为适用于Intel和PowerPC芯片的通用二进制文件,但您仍然只能使用OS X.

要获得Linux的可运行的可执行文件,你需要在Linux上编译它(或者使用交叉编译器,但这可能比它的价值更难,特别是如果你必须重复这样做的话)。

或者,如前所述,您可以只分发源代码并让人们自己编译。这可能是最好的方法,因为C ++没有通用的二进制格式,所以如果不同的人使用具有不同形式的名称修改的不同编译器,他们仍然会得到一个有效的程序(如果他们用一个编译OpenGL或GLUT) C ++编译器然后你用另一个编译你的程序,它们可能不能一起工作(我认为))。

答案 2 :(得分:-2)

如何分享来源?

你害怕有人会偷你的宝贵作品吗?

相关问题