【问题标题】:How do I compile Rust code without linking, i.e. produce object files?如何在不链接的情况下编译 Rust 代码,即生成目标文件?
【发布时间】:2022-05-10 09:16:00
【问题描述】:

由于how the LGPL works,无需链接即可将 Rust 代码编译为目标文件将很有用。但是,我找不到任何有关如何执行此操作的文档。我检查了 rustc 的帮助部分并进行了搜索,但找不到任何东西,这让我想到了我的问题:如何告诉 rustc 不链接并生成稍后可以链接的目标文件?

【问题讨论】:

    标签: rust


    【解决方案1】:

    使用编译器标志--emit=obj

    cargo rustc -- --emit=obj
    

    编译后的目标文件将位于target/debug/deps

    另见:

    【讨论】:

    • 嗯,这似乎不起作用。我在运行命令时记录了warning: ignoring emit path because multiple .o files were produced,而ls target/debug/deps | egrep '\.o' 什么也没产生。还查看了我从ls target/debug/deps 得到的结果,我没有看到任何 .o 文件。
    • 这取决于项目,@Newbyte。您可能需要一次指定一个目标板条箱(例如,仅 lib)。
    • 在答案中添加一个示例来说明您将如何做到这一点是否合理?我认为我对 cargo 和 rustc 不够熟悉,不知道该怎么做,而且我认为它至少与问题间接相关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    相关资源
    最近更新 更多