如何在 MacOS 上使用 libbfd link?

How to link with libbfd on MacOS?

我正在尝试在 MacOS 上使用 libbfd 进行构建。我没有发现任何迹象表明 Apple Clang 会提供类似的东西,所以我“卡在”了 Homebrew 上。

链接 /usr/local/opt/binutils/lib/libbfd.a 我得到了很多未解析的符号,一些侦探工作表明其中一些至少来自 libiberty 所以感谢 我解决了大部分问题,但是我还有一些也有点混乱:

Undefined symbols for architecture x86_64:
  "_compress", referenced from:
      _bfd_compress_section_contents in libbfd.a(compress.o)
     (maybe you meant: __bfd_pex64_print_ce_compressed_pdata, __bfd_pep_print_ce_compressed_pdata , _bfd_init_section_compress_status , _bfd_is_section_compressed , _bfd_is_section_compressed_with_header , __bfd_pe_print_ce_compressed_pdata , _bfd_compress_section , _bfd_get_compression_header_size , _bfd_update_compression_header , _bfd_check_compression_header )
  "_compressBound", referenced from:
      _bfd_compress_section_contents in libbfd.a(compress.o)
  "_inflate", referenced from:
      _decompress_contents in libbfd.a(compress.o)
  "_inflateEnd", referenced from:
      _decompress_contents in libbfd.a(compress.o)
  "_inflateInit_", referenced from:
      _decompress_contents in libbfd.a(compress.o)
  "_inflateReset", referenced from:
      _decompress_contents in libbfd.a(compress.o)

这些符号来自 libz 库。

在许多平台上,您不需要使用 libz 显式 link,但在 Homebrew 上您需要。

您需要 link 使用 -libz