C++ 我应该使用哪个链接器在windows上发出叮当声

C++ 我应该使用哪个链接器在windows上发出叮当声,c++,clang,llvm,lldb,C++,Clang,Llvm,Lldb,我只是想了解如何在Windows上使用Clang/LLVM(而不是Microsoft Clanf/C2工具链) 请澄清我的理解: 是对过程的描述 我是否理解这一点,为了生成可执行文件,应明确执行以下步骤: clang.exe(前端编译器) llc.exe(后端代码生成器) lld.exe(链接器) 或者含蓄地: 仅运行clang.exe(从自身运行其他工具) 但是,在上面的手册中,建议使用Microsoft Linker(link.exe),为什么 因为此链接器可以生成.pdb文件以供

我只是想了解如何在Windows上使用Clang/LLVM(而不是Microsoft Clanf/C2工具链)

请澄清我的理解: 是对过程的描述

我是否理解这一点,为了生成可执行文件,应明确执行以下步骤:

  • clang.exe(前端编译器)
  • llc.exe(后端代码生成器)
  • lld.exe(链接器)
或者含蓄地:

  • 仅运行clang.exe(从自身运行其他工具)
但是,在上面的手册中,建议使用Microsoft Linker(link.exe),为什么

  • 因为此链接器可以生成.pdb文件以供ms调试器调试?link.exe和lld.exe工作结果的唯一区别是什么
  • 如果我还是要使用lld.exe,这将为win平台生成有效的可执行文件,不是吗
  • 如果我要使用lld-这能为windows上使用lldb生成自己的格式调试信息吗
link.exe是Windows上的标准链接器,并且(从LLVM 3.9开始)可以生成pdb调试信息,以便使用visual studio进行调试。如果要使用lldb,Link.exe不会保留DWARF调试信息

lld将生成有效的DWARF调试信息,但上次我检查(我认为是LLVM3.7)时,它只适用于x86。它将链接x64可执行文件,但不提供有效的调试信息


更多信息请点击这里

(注意:原始答案编写几年后,lld获得了输出codeview/PDB的能力,即使没有在
link.exe
模式下运行)