Merge pull request #440 from RoggeOhta/master

Add build script part to FFI chapter for more clear and smooth learn …
master
Yuki Okushi 2 weeks ago committed by GitHub
commit 3ff3843205
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -21,6 +21,32 @@ libc = "0.2.0"
[libc]: https://crates.io/crates/libc
## Prepare the build script
Because [snappy](https://github.com/google/snappy) is a static library by default.
So there is no C++ std linked in the output artifact.
n order to use this foreign library in Rust, we have to manually specify that we want to link stdc++ in our project.
The easiest way to do this is by setting up a build script.
First edit `Cargo.toml`, inside `package` add `build = "build.rs"`:
```toml
[package]
...
build = "build.rs"
```
Then create a new file at the root of your workspace, named `build.rs`:
```rust
// build.rs
fn main() {
println!("cargo:rustc-link-lib=dylib=stdc++"); // This line may be unnecessary for some environment.
println!("cargo:rustc-link-search=<YOUR SNAPPY LIBRARY PATH>");
}
```
For more information, please read [The Cargo Book - build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html).
## Calling foreign functions
The following is a minimal example of calling a foreign function which will

Loading…
Cancel
Save