相关疑难解决方法(0)

MacOSX:哪些动态库通过二进制链接?

我无法弄清楚为什么我的二进制文件无法加载。它是MATLAB加载的dylib(MEX文件),并链接到位于不同位置的许多dylib。MATLAB告诉我它无法加载MEX文件,但是我无法弄清它找不到哪个依赖项。

有人对如何调试这样的东西有任何建议吗?

在Linux上,ldd是调试此问题的理想工具。人们一直说otool -LMacOS与Linux等效ldd,但这不是事实。ldd实际上会查找这些库,并告诉您可以找到哪些库以及在何处找到它们。otool -L仅告诉您需要链接的库。无需检查它们是否存在。它甚至没有告诉您使用库时在哪里搜索库@rpath

otool -l(小写的L)为您提供了“加载命令”的转储,您可以在LC_RPATH其中看到这些命令,这些命令确定了在何处@rpath搜索库。但是这些无法向我解释未找到哪个依赖项。

macos rpath otool ldd

8
推荐指数
2
解决办法
3786
查看次数

在 macOS 上检查 ELF 文件并获取二进制文件

我有一个 ELF 文件,我想从中获取我的代码的hex或文件。bin在终端中,如果 a do a file main,这是我的文件,它会显示:

main: ELF 32-bit LSB executable, UCB RISC-V, version 1 (SYSV), statically linked, not stripped
Run Code Online (Sandbox Code Playgroud)

据我所知,objdump在 macOS 上不起作用,并且otool -l main出现以下错误:

llvm-objdump: 'main': Object is not a Mach-O file type.
Run Code Online (Sandbox Code Playgroud)

ELF 文件是使用以下命令创建的:

riscv-none-gcc/8.2.0-2.1-20190425-1021/bin/riscv-none-embed-gcc --specs=nosys.specs main.c -o main
Run Code Online (Sandbox Code Playgroud)

那么有没有办法做到呢?

多谢

binary macos elf otool binutils

4
推荐指数
1
解决办法
6989
查看次数

标签 统计

macos ×2

otool ×2

binary ×1

binutils ×1

elf ×1

ldd ×1

rpath ×1