windows 我应该为 clang 使用哪个链接器
which linker should I use for clang on windows
我只是想了解如何在 Windows(不是 Microsoft Clanf/C2 工具链)上使用 Clang/LLVM。
请澄清我的理解:
here是对过程的描述。
我理解对吗,要生成可执行文件,应该明确执行这些步骤:
- 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 上的标准 linker 并且(从 LLVM 3.9 开始)可以生成用于使用 visual studio 进行调试的 pdb 调试信息。如果您打算使用 lldb,Link.exe 不会保留 DWARF 调试信息。
lld 将生成有效的 DWARF 调试信息,但我上次检查时(我认为 LLVM 3.7 左右)它只适用于 x86。它将 link 一个 x64 可执行文件,但不提供有效的调试信息。
更多信息请点击此处。 http://lld.llvm.org/windows_support.html
我只是想了解如何在 Windows(不是 Microsoft Clanf/C2 工具链)上使用 Clang/LLVM。
请澄清我的理解: here是对过程的描述。
我理解对吗,要生成可执行文件,应该明确执行这些步骤:
- 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 上的标准 linker 并且(从 LLVM 3.9 开始)可以生成用于使用 visual studio 进行调试的 pdb 调试信息。如果您打算使用 lldb,Link.exe 不会保留 DWARF 调试信息。
lld 将生成有效的 DWARF 调试信息,但我上次检查时(我认为 LLVM 3.7 左右)它只适用于 x86。它将 link 一个 x64 可执行文件,但不提供有效的调试信息。
更多信息请点击此处。 http://lld.llvm.org/windows_support.html