Specify target stuff in example

This commit is contained in:
William Venner 2021-12-09 17:59:56 +00:00
parent a6881829e1
commit 1f6e947223
1 changed files with 13 additions and 4 deletions

View File

@ -4,11 +4,20 @@ Installing Rust is as easy as downloading [rustup](https://rustup.rs/) and runni
# Building the example
To build the example in debug mode, simply type in a terminal:
To build the example in debug mode, you'll need to specify the target architecture for your build.
`cargo build`
| Platform | Command | Description |
|:---:|:---:|:---:|
| `win32` | `cargo build --target i686-pc-windows-msvc` | Windows 32-bit<br>Use this if your server is running Windows and is on the `main` branch of Garry's Mod (this is the default branch.) |
| `win64` | `cargo build --target x86_64-pc-windows-msvc` | Windows 64-bit<br>Use this if your server is running Windows and is on the `x86-64` branch of Garry's Mod. |
| `linux` | `cargo build --target i686-unknown-linux-gnu` | Linux 32-bit<br>Use this if your server is running Linux and is on the `main` branch of Garry's Mod (this is the default branch.) |
| `linux64` | `cargo build --target x86_64-unknown-linux-gnu` |Linux 64-bit<br>Use this if your server is running Linux and is on the `x86-64` branch of Garry's Mod. |
You can find the compiled binary in `target/debug/my_first_binary_module.dll` (or `.so` if you're building on Linux)
You can find the compiled binary in `target/<TARGET>/debug/my_first_binary_module.dll` on Windows or `target/<TARGET>/debug/libmy_first_binary_module.so` on Linux.
If Rust complains it can't find the target/toolchain, you'll need to install it. By default Rust only installs your system's native toolchain, which is most likely Windows 64-bit (`x86_64-pc-windows-msvc`)
I don't recommend cross-compiling Linux binaries on Windows. If you want to compile Linux binaries on Windows, do it in WSL.
# Using the example in Garry's Mod
@ -33,7 +42,7 @@ require("my_first_binary_module")
If you've written a useful module and want to release it to the world, or just on your server, build with the `--release` flag:
`cargo build --release`
`cargo build --target <TARGET> --release`
This enables performance optimization of the compiled binary and removes debug symbols which make the binary huge, whilst taking longer to compile.