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