GNU和MSVC Rust工具链有什么区别?

hl3*_*kel 12 rust

文件说明:

您需要哪个版本的Rust在很大程度上取决于您希望与之互操作的C/C++库:与Visual Studio生成的软件互操作使用Rust的MSVC版本; 与使用MinGW/MSYS2工具链构建的GNU软件互操作使用GNU构建.

究竟是什么差异?

  1. 它只是与MSVC编译的二进制文件的互操作性?

  2. 它是否会影响链接或Rust或LLVM是否提供自己的链接?

  3. 我知道Rust使用LLVM作为他们的后端,会在两个影响代码生成之间做出选择吗?

Seb*_*edl 8

  1. 是.
  2. 它使用指定工具链的链接器.Rust不提供自己的链接器.
  3. 是的,但只就ABI兼容性而言.它不会影响优化,除非可能间接,因为使用了不同的展开机制(GNU的libunwind,MSVC的SEH).