Crates.io | link-cplusplus |
lib.rs | link-cplusplus |
version | 1.0.9 |
source | src |
created_at | 2020-01-24 23:19:30.309958 |
updated_at | 2023-07-03 18:21:57.076226 |
description | Link libstdc++ or libc++ automatically or manually |
homepage | |
repository | https://github.com/dtolnay/link-cplusplus |
max_upload_size | |
id | 201683 |
size | 20,507 |
-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;