如何使动态库链接的程序可移植?
这是我的解决方案:
我将程序移动到另一台没有安装任何库的计算机上,阅读错误消息并逐个复制库。
我必须重复几次,直到所有需要的库都被cpoied。在某些情况下,我不知道库在哪里,也找不到它。
有什么办法可以让它变得更容易吗?
this is my solution:
I move the program to another computer without any lib installed, read the error messeges and copy the lib one by one.
I have to repeat it several time until all library required is cpoied. In some cases, I don't know where is the lib neither do find it.
Is there any way make it easier?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用Dependency Walker。它是一个免费的实用程序,可以扫描 EXE 和 DLL,并构建所有依赖模块的层次树形图。
编辑:
在linux上尝试binscan或ELF Library Viewer(来自J-16 SDiZ的SO回答) 。
Use Dependency Walker. It is a free utility that scans EXEs and DLLs, and builds a hierarchical tree diagram of all dependent modules.
Edit:
On linux try binscan or ELF Library Viewer (from SO answer by J-16 SDiZ).
使用包管理系统。它们会根据 Linux 的风格而有所不同,但仅仅将二进制文件从一台机器复制到另一台机器并不是在机器上安装软件的方式。如果你想从机器 A 获取 /bin/foo 到机器 B,请找出 /bin/foo 属于 A 上的哪个包,然后在 B 上安装该包。下载并安装所有依赖项应该像
下面这样简单:
Use a package management system. They will differ depending on the flavor of linux, but just copying a binary from one machine to another is not the way to install software on a box. If you want to get /bin/foo from machine A, to machine B, figure out which package /bin/foo belongs to on A and then install that package on B. Downloading and installing all the dependencies should be as simple as:
or