Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add note about static libraries not linking their dependencies #1472

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions src/linkage.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,13 @@ be ignored in favor of only building the artifacts specified by command line.
the local crate's code along with all upstream dependencies. This output type
will create `*.a` files on Linux, macOS and Windows (MinGW), and `*.lib` files
on Windows (MSVC). This format is recommended for use in situations such as
linking Rust code into an existing non-Rust application
because it will not have dynamic dependencies on other Rust code.
linking Rust code into an existing non-Rust application because it will not
have dynamic dependencies on other Rust code.

Note that any dynamic dependencies that the static library may have (such as
dependencies on system libraries, or dependencies on Rust libraries that are
compiled as dynamic libraries) will have to be specified manually when
linking that static library from somewhere. The `--print=native-static-libs` flag may help with this.

* `--crate-type=cdylib`, `#![crate_type = "cdylib"]` - A dynamic system
library will be produced. This is used when compiling
Expand Down