6

为什么 Rust 需要 C++ 的编译环境?

 2 years ago
source link: https://www.v2ex.com/t/850745
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

为什么 Rust 需要 C++ 的编译环境?

  HeFengzz · 4 小时 41 分钟前 · 1522 次点击
因为操作系统都是 C 写的?
13 条回复    2022-05-04 14:13:34 +08:00
f64by

f64by      4 小时 38 分钟前

需要一个 Linker
BrettD

BrettD      4 小时 37 分钟前 via iPhone   ❤️ 1

1. 有些 crate 包装了 C/C++的代码
2. 纯 rust 程序的编译阶段只需要 rust 编译器,但是最后链接的时候是需要系统链接器的
lysS

lysS      4 小时 18 分钟前

因为 rust 没自举
JohnSmith

JohnSmith      4 小时 6 分钟前

@lysS #3 张口就来
ila

ila      4 小时 5 分钟前 via Android

fifcom

fifcom      4 小时 2 分钟前

@lysS 2011 年就自举了
zzhaolei

zzhaolei      3 小时 58 分钟前

@lysS 真张口就来
wsy2220

wsy2220      3 小时 54 分钟前   ❤️ 1

有些依赖是 C/C++库,比如 openssl
DeWjjj

DeWjjj      3 小时 19 分钟前

Rust 代码文件=>Rust 代码中间文件=>二进制文件。
DeWjjj

DeWjjj      3 小时 17 分钟前

windows 可运行的编译好后的二进制文件会运用到很多自身的接口,而这个接口配置是很耗功夫的。
不如让你去下一个 mingw 或者是 c++,因为反正会编译成类似于本机 c++编译的二进制文件。
lysS

lysS      2 小时 49 分钟前

好吧,这个我真的是信口开河了
dianso

dianso      2 小时 34 分钟前

C++是地基
msg7086

msg7086      1 小时 49 分钟前   ❤️ 3

重用现成的工具链。
比如上面说的 linker ,其实 linker 并不是专门为 C/C++服务的,但包含在了 C/C++工具链里。
其他语言就没必要重写一个一模一样的组件了。
如果 Rust 也实现了一个 linker ,你也可以用 Rust 写的 linker 去链接 C/C++的项目。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK