我有一个可执行文件,我希望能够在其他Linux系统中分发和运行。 有没有办法可以合理地确定这是否有效,无法访问最终的运行时环境?
例如,我担心我的可执行文件可能正在使用仅存在于我的开发机器上的动态库。
答案 0 :(得分:4)
使用可执行文件提供任何相关的共享库,并在shell脚本中设置$LD_LIBRARY_PATH
,该脚本调用可执行文件以告知链接器在何处查找共享库。有关详细信息,请参阅ld.so(8)
手册页,并确保遵循相应的许可证。
答案 1 :(得分:1)
看看Debian(.deb)和Redhat(.rpm)打包的东西。这是您的包的安装程序。它们并不是那么困难,您可以告诉它引用具有所需共享对象的其他包。
打包工具通常可以修复缺少库等的包。它还可以帮助您放置二进制文件,使您无需设置LD_LIBRARY_PATH或将shell脚本前端放在可执行文件上。
他们也不难学。花一天时间与每个人玩,你会得到一个可通行的安装包。
答案 2 :(得分:1)
有没有办法可以合理地确定这是否有效,无法访问最终的运行时环境?
一个人的环境可能与你的环境不同,即使它仍然是Linux。因此,将程序提供给最广泛受众的唯一可靠方法是发送源代码。
答案 3 :(得分:0)
难道你不能只是将所有东西静态地连接成一个超大的黑洞^ W ^ W二进制文件吗?