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

时间:2017-10-25 12:05:22

标签: rust

文档说明:

  

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

这些差异究竟是什么?

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

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

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

1 个答案:

答案 0 :(得分:8)

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