From 1f6e947223891ac5ad803759daa8521f75e04a4f Mon Sep 17 00:00:00 2001 From: William Venner Date: Thu, 9 Dec 2021 17:59:56 +0000 Subject: [PATCH] Specify target stuff in example --- example/my-first-binary-module/README.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/example/my-first-binary-module/README.md b/example/my-first-binary-module/README.md index 668de11..1bc481d 100644 --- a/example/my-first-binary-module/README.md +++ b/example/my-first-binary-module/README.md @@ -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
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
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
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
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//debug/my_first_binary_module.dll` on Windows or `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 --release` This enables performance optimization of the compiled binary and removes debug symbols which make the binary huge, whilst taking longer to compile.