【问题标题】:Adding codegen flags to a Cargo build将 codegen 标志添加到 Cargo 构建
【发布时间】:2016-06-10 23:51:20
【问题描述】:

在 Macintosh 上,要允许取消链接某些符号,必须将 -C link-args='-Wl,-undefined,dynamic_lookup' 传递给 Rust 编译器。在构建 Postgres 插件时需要这样做,因为一些 Postgres 内部函数仅编译到 Postgres 服务器中,不能用于从共享库链接。

目前该项目的流程如下:

  • 使用cargo build -v 运行构建。
  • rustc 的失败调用被复制,-C link-args='-Wl,-undefined,dynamic_lookup' 被添加到其中。
  • 成功了!

这对于自动化来说似乎很难卖。哪些选项可用于通过 cargo 向 Rust 构建添加 codegen 标志?

【问题讨论】:

    标签: rust rust-cargo


    【解决方案1】:

    cargo 提供rustc 命令,允许传递任意编译器标志。以下应该做到这一点:

    % cargo rustc -- -C link-args='-Wl,-undefined,dynamic_lookup'
    

    【讨论】:

    • 这很有帮助,谢谢。不过,我不确定是否接受这一点,因为它没有提供一种记录和自动化构建过程的方法。
    • 这确实是做任何事情的唯一方法,所以是时候接受了。
    • 没有办法把它放到 toml 文件中?有吗?
    • @MajesticRa,不,Cargo 是明确设计的against it。通过清单中的[profile] 部分提供对由标志控制的编译器配置子集的访问。
    • 啊……那是两年前的事了。我记得 Rust 有类和垃圾收集器的时代)))我的意思是……Rust 概念在 1.0 之前迅速变化
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多