#cpp #链接 #无分配

sys 无 std 构建 link-cplusplus

自动或手动链接 libstdc++ 或 libc++

10 个稳定版本

1.0.9 2023年7月3日
1.0.8 2022年12月17日
1.0.7 2022年8月22日
1.0.6 2021年11月13日
1.0.1 2020年1月25日

#38 in 构建工具

Download history 222529/week @ 2024-03-14 228780/week @ 2024-03-21 229746/week @ 2024-03-28 239559/week @ 2024-04-04 259037/week @ 2024-04-11 262428/week @ 2024-04-18 251661/week @ 2024-04-25 249152/week @ 2024-05-02 262376/week @ 2024-05-09 253854/week @ 2024-05-16 235079/week @ 2024-05-23 262237/week @ 2024-05-30 231350/week @ 2024-06-06 240754/week @ 2024-06-13 233601/week @ 2024-06-20 188445/week @ 2024-06-27

941,169 每月下载量
用于 374 个 crate (22 个直接使用)

MIT/Apache

9KB

-lstdc++-lc++

github crates.io docs.rs build status

此 crate 存在的目的是将 -lstdc++-lc++ 传递给链接器,同时使应用程序能够代表其库依赖项做出该选择。

如果没有这个 crate,库将需要

  • 选择一个进行链接,下游应用程序无法覆盖此选择;
  • 或两者都不链接,并要求下游应用程序提供显式的链接标志,即使它们可以使用默认选择;

这两种情况都不是良好的体验。


选项

如果应用程序或库对链接 libstdc++ 或 libc++ 都没有问题,可以使用平台默认的链接器,应在 Cargo.toml 中使用以下内容

[dependencies]
link-cplusplus = "1.0"

如果应用程序想要链接特定的一个,应使用

[dependencies]
link-cplusplus = { version = "1.0", features = ["libstdc++"] }

# or

link-cplusplus = { version = "1.0", features = ["libc++"] }

如果应用程序想要在构建脚本中处理自己的更复杂的链接标志逻辑,可以通过使用

[dependencies]
link-cplusplus = { version = "1.0", features = ["nothing"] }

最后,请确保在 crate 根目录中添加一个显式的 extern crate 依赖项,因为否则 link-cplusplus crate 将不会被使用,其链接标志也将丢失。

// src/lib.rs

extern crate link_cplusplus;

许可协议

根据您的选择,在以下两者之一下获得许可:Apache 许可协议,版本 2.0MIT 许可协议
除非您明确声明,否则您根据 Apache-2.0 许可协议定义的任何有意提交给本项目并由您包含在内的贡献,将按照上述方式双许可,不附加任何额外条款或条件。

依赖项

~180KB