我已经在我的计算机上成功编译了一个程序(包括SDL)(Ubuntu 12)并且a.out
运行得很好!
现在,如果我将a.out
发送给朋友,那就不行了。 (给出简单的错误消息("Can't be run.."
)或其他)
但是,如果我再次在朋友计算机上编译相应的源文件,它就可以了!
如何打包/编译/制作我的程序以使其在其他计算机上运行?
答案 0 :(得分:5)
可执行文件通常特定于创建它们的环境/机器。即使涉及相同的处理器/硬件,也可能存在对库的依赖性,这可能会阻止可执行文件在其他计算机上运行。
你能发送包含编译指令的源代码吗?假设没有NDA或其他问题阻止这种方法(我只是建议,因为你提到这对你有效)
当然,最终可能,毕竟这是二进制文件的分布方式,但它们将被精心构建并具有静态链接库(即所有内容都是可执行文件的一部分)。
答案 1 :(得分:0)
请您的朋友执行以下操作:
chmod +x a.out
ldd a.out
他看到了什么?当然,我假设两个环境大致相似(例如,都运行Ubuntu等)