【发布时间】:2012-07-19 12:22:17
【问题描述】:
我有一个远程 Unix 服务器,我想在其上运行各种程序。我可以轻松地设置一个运行某种 Unix 风格的本地虚拟机,我可以在其上编译我的程序。问题是,将 Unix 程序从一台主机移动到另一台主机似乎总是会失败。 :-(
例如,我在 OpenSUSE 11.4 系统上编译了test,并尝试运行它。它工作得很好。但是后来我将编译好的二进制文件复制到了 Debian 6.0.3 系统,现在它拒绝运行。相反,我只是得到
测试:加载共享库时出错:libgmp.so.10:无法打开共享对象文件:没有这样的文件或目录
大概安装编译器也会安装所有依赖项 - 但仅限于本地机器上。我大概必须以某种方式猜测我需要在远程机器上放置哪些依赖项。
最重要的是,我没有远程机器的 shell 访问权限。我只有FTP。所以我不能安装任何东西。我只能将文件复制到它。所以我想知道我是否可以将必要的共享库复制到与编译的二进制文件相同的文件夹中。那行得通吗?还是我必须做一些更复杂的事情?
【问题讨论】:
-
如何在没有 shell 的远程机器上执行程序?您将需要能够设置环境变量以最有可能显示共享库的位置,除非您只是静态链接整个内容。 (*.com/questions/1437393/… 可能会对您有所帮助,虽然无法访问 shell,但可能不会。)
-
二进制文件应该通过 CGI 运行。将 Web 浏览器指向适当的 URL 会导致二进制文件运行。或者,吐出一个链接器错误——但不是我能读到的任何地方。 :-(
标签: linux