【发布时间】:2015-07-13 16:07:05
【问题描述】:
我知道ldd 只能将二进制文件作为其参数,我在这里要问的是如何使用二进制文件运行ldd,例如mybin,使用二进制文件的参数。例如,mybin --myparam ./configfile.conf。
如果我为我的二进制文件添加 conf 文件,链接器会有所不同,因为它会在运行时使用插件的共享对象文件加载一些插件,plugin1.so 类似这样的东西。我有一些未定义的参考问题,但我仍然不知道我丢失了哪个 .so 文件。
如果我运行ldd ./mybin,所有内容都已链接并且运行纯二进制文件就可以了。一旦我为我的二进制文件添加了 conf 文件,让它加载一些插件共享库,那么我的二进制文件将在加载这些库时报告错误(编码异常抛出,带有一些 undefined reference 错误消息)。
因此,如果有办法运行 ldd 和 mybin --myparam ./a.file,这样的事情会有很大帮助。
【问题讨论】:
-
尝试跟踪找到有问题的库,然后在该库上运行
ldd? -
@KerrekSB 哦,是的,您的评论也很有用,因为我实际上有可以运行
ldd的共享库路径。
标签: c++ parameters shared-libraries ldd