在Macintosh上,为了允许某些符号解除链接,需要将-C link-args='-Wl,-undefined,dynamic_lookup'传递给Rust编译器.在构建Postgres插件时需要这样做,因为一些Postgres内部函数只编译到Postgres服务器中,无法从共享库进行链接.

目前,该项目的流程如下:

  • 构建以cargo build -v为单位运行.
  • rustc的失败呼叫被复制,并向其添加-C link-args='-Wl,-undefined,dynamic_lookup'.
  • 成功

这似乎是一个难以推销的自动化产品.有哪些选项可用于将codegen标志添加到Rust builds到cargo

推荐答案

cargo提供rustc命令,允许传递任意编译器标志.以下几点可以做到:

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

Rust相关问答推荐

阻止websocket中断的中断中断的终端(操作系统错误4)

将已知大小的切片合并成一个数组,

关联类型(类型参数)命名约定

MPSC频道在接收器处阻塞

如何格式化传入Rust中mysql crate的Pool::new的字符串

防止cargo test 中的竞争条件

在析构赋值中使用一些现有绑定

什么时候和为什么S最好是按值或引用传递简单类型

如何从ruust中的fig.toml中读取?

通过RabbitMQ取消铁 rust 中长时间运行的人造丝任务的策略

为什么Rust不支持带关联常量的特征对象?

为什么`str`类型可以是任意大小(未知大小),而`string`类型的大小应该是已知的?

写入引用会更新基础值,但引用会打印意外的值

在运行特定测试时,如何 suppress cargo test 的空输出?

如何限制 GtkColumnView 行数

max(ctz(x), ctz(y)) 有更快的算法吗?

Rust 中 Mutex<> 的深拷贝?

为什么 `tokio::join!` 宏不需要 Rust 中的 `await` 关键字?

如何获取函数中borrow 的切片的第一部分?

如何断言代码不会在测试中编译?