在另一台计算机上运行a.out

时间:2012-07-11 13:01:17

标签: c++ linux sdl

我已经在我的计算机上成功编译了一个程序(包括SDL)(Ubuntu 12)并且a.out运行得很好!

现在,如果我将a.out发送给朋友,那就不行了。 (给出简单的错误消息("Can't be run..")或其他) 但是,如果我再次在朋友计算机上编译相应的源文件,它就可以了!

如何打包/编译/制作我的程序以使其在其他计算机上运行?

2 个答案:

答案 0 :(得分:5)

可执行文件通常特定于创建它们的环境/机器。即使涉及相同的处理器/硬件,也可能存在对库的依赖性,这可能会阻止可执行文件在其他计算机上运行。

你能发送包含编译指令的源代码吗?假设没有NDA或其他问题阻止这种方法(我只是建议,因为你提到这对你有效)

当然,最终可能,毕竟这是二进制文件的分布方式,但它们将被精心构建并具有静态链接库(即所有内容都是可执行文件的一部分)。

答案 1 :(得分:0)

请您的朋友执行以下操作:

 chmod +x a.out
 ldd a.out

他看到了什么?当然,我假设两个环境大致相似(例如,都运行Ubuntu等)