tag | 39db5a662a9a111263af77fd1328968d74eec312 | |
---|---|---|
tagger | David Tolnay <dtolnay@gmail.com> | Sat Dec 17 19:22:02 2022 |
object | 87adc6ba8b1e700f183da06a767ba1f5c90a364e |
Release 1.0.8
commit | 87adc6ba8b1e700f183da06a767ba1f5c90a364e | [log] [tgz] |
---|---|---|
author | David Tolnay <dtolnay@gmail.com> | Sat Dec 17 19:22:02 2022 |
committer | David Tolnay <dtolnay@gmail.com> | Sat Dec 17 19:22:02 2022 |
tree | 8b9d3413ccf12413cc33e4e27bd48aebafd32fbc | |
parent | 74ae54cf3a8747eefa2cbe8e9564dcebd51c0cac [diff] |
Release 1.0.8
-lstdc++
or -lc++
This crate exists for the purpose of passing -lstdc++
or -lc++
to the linker, while making it possible for an application to make that choice on behalf of its library dependencies.
Without this crate, a library would need to:
neither of which are good experiences.
An application or library that is fine with either of libstdc++ or libc++ being linked, whichever is the platform's default, should use the following in Cargo.toml:
[dependencies] link-cplusplus = "1.0"
An application that wants a particular one or the other linked should use:
[dependencies] link-cplusplus = { version = "1.0", features = ["libstdc++"] } # or link-cplusplus = { version = "1.0", features = ["libc++"] }
An application that wants to handle its own more complicated logic for link flags from its build script can make this crate do nothing by using:
[dependencies] link-cplusplus = { version = "1.0", features = ["nothing"] }
Lastly, make sure to add an explicit extern crate
dependency to your crate root, since the link-cplusplus crate will be otherwise unused and its link flags dropped.
// src/lib.rs extern crate link_cplusplus;