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

2022-05-04 11:21:50 +08:00
 HeFengzz
因为操作系统都是 C 写的?
5340 次点击
所在节点    Rust
16 条回复
f64by
2022-05-04 11:24:43 +08:00
需要一个 Linker
BrettD
2022-05-04 11:25:37 +08:00
1. 有些 crate 包装了 C/C++的代码
2. 纯 rust 程序的编译阶段只需要 rust 编译器,但是最后链接的时候是需要系统链接器的
lysS
2022-05-04 11:45:16 +08:00
因为 rust 没自举
JohnSmith
2022-05-04 11:56:46 +08:00
@lysS #3 张口就来
ila
2022-05-04 11:58:01 +08:00
依赖包
fifcom
2022-05-04 12:00:40 +08:00
@lysS 2011 年就自举了
zzhaolei
2022-05-04 12:05:02 +08:00
@lysS 真张口就来
wsy2220
2022-05-04 12:09:12 +08:00
有些依赖是 C/C++库,比如 openssl
DeWjjj
2022-05-04 12:43:57 +08:00
Rust 代码文件=>Rust 代码中间文件=>二进制文件。
DeWjjj
2022-05-04 12:45:54 +08:00
windows 可运行的编译好后的二进制文件会运用到很多自身的接口,而这个接口配置是很耗功夫的。
不如让你去下一个 mingw 或者是 c++,因为反正会编译成类似于本机 c++编译的二进制文件。
lysS
2022-05-04 13:14:13 +08:00
好吧,这个我真的是信口开河了
dianso
2022-05-04 13:28:56 +08:00
C++是地基
msg7086
2022-05-04 14:13:34 +08:00
重用现成的工具链。
比如上面说的 linker ,其实 linker 并不是专门为 C/C++服务的,但包含在了 C/C++工具链里。
其他语言就没必要重写一个一模一样的组件了。
如果 Rust 也实现了一个 linker ,你也可以用 Rust 写的 linker 去链接 C/C++的项目。
araaaa
2022-05-04 18:03:15 +08:00
要链接系统库
kongkongyzt
2022-05-04 18:15:15 +08:00
应该就是一楼说的,编译需要一个 Linker
Andmeics
2022-05-04 18:38:25 +08:00
LLVM

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/850745

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX