V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HeFengzz
V2EX  ›  Rust

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

  •  2
     
  •   HeFengzz · 2022-05-04 11:21:50 +08:00 · 5023 次点击
    这是一个创建于 754 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为操作系统都是 C 写的?
    16 条回复    2022-05-04 18:38:25 +08:00
    f64by
        1
    f64by  
       2022-05-04 11:24:43 +08:00
    需要一个 Linker
    BrettD
        2
    BrettD  
       2022-05-04 11:25:37 +08:00 via iPhone   ❤️ 1
    1. 有些 crate 包装了 C/C++的代码
    2. 纯 rust 程序的编译阶段只需要 rust 编译器,但是最后链接的时候是需要系统链接器的
    lysS
        3
    lysS  
       2022-05-04 11:45:16 +08:00
    因为 rust 没自举
    JohnSmith
        4
    JohnSmith  
       2022-05-04 11:56:46 +08:00   ❤️ 2
    @lysS #3 张口就来
    ila
        5
    ila  
       2022-05-04 11:58:01 +08:00 via Android
    依赖包
    fifcom
        6
    fifcom  
       2022-05-04 12:00:40 +08:00   ❤️ 1
    @lysS 2011 年就自举了
    zzhaolei
        7
    zzhaolei  
       2022-05-04 12:05:02 +08:00   ❤️ 1
    @lysS 真张口就来
    wsy2220
        8
    wsy2220  
       2022-05-04 12:09:12 +08:00   ❤️ 1
    有些依赖是 C/C++库,比如 openssl
    DeWjjj
        9
    DeWjjj  
       2022-05-04 12:43:57 +08:00
    Rust 代码文件=>Rust 代码中间文件=>二进制文件。
    DeWjjj
        10
    DeWjjj  
       2022-05-04 12:45:54 +08:00
    windows 可运行的编译好后的二进制文件会运用到很多自身的接口,而这个接口配置是很耗功夫的。
    不如让你去下一个 mingw 或者是 c++,因为反正会编译成类似于本机 c++编译的二进制文件。
    lysS
        11
    lysS  
       2022-05-04 13:14:13 +08:00
    好吧,这个我真的是信口开河了
    dianso
        12
    dianso  
       2022-05-04 13:28:56 +08:00
    C++是地基
    msg7086
        13
    msg7086  
       2022-05-04 14:13:34 +08:00   ❤️ 5
    重用现成的工具链。
    比如上面说的 linker ,其实 linker 并不是专门为 C/C++服务的,但包含在了 C/C++工具链里。
    其他语言就没必要重写一个一模一样的组件了。
    如果 Rust 也实现了一个 linker ,你也可以用 Rust 写的 linker 去链接 C/C++的项目。
    araaaa
        14
    araaaa  
       2022-05-04 18:03:15 +08:00 via iPhone
    要链接系统库
    kongkongyzt
        15
    kongkongyzt  
       2022-05-04 18:15:15 +08:00
    应该就是一楼说的,编译需要一个 Linker
    Andmeics
        16
    Andmeics  
       2022-05-04 18:38:25 +08:00
    LLVM
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1010 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:52 · PVG 03:52 · LAX 12:52 · JFK 15:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.