# Notes on cross compilation ## Testing with Wine To test the Windows target, install wine and add it to the `CARGO_TARGET_X86_64_PC_WINDOWS_GNU_RUNNER` environment variable. **Example** `CARGO_TARGET_X86_64_PC_WINDOWS_GNU_RUNNER=wine64 cargo test --target=x86_64-pc-windows-gnu` The C++ runtime DLLs need to be available. On OS X, you install `brew install mingw-w64` and add to the environment variable `WINEPATH`. On debian, install `gcc-mingw-w64-x86-64-posix` and `g++-mingw-w64-x86-64-posix`. Note that WINEPATH separates paths with semicolon (;), not (:) as normal for unix environments. **Example OS X** `export WINEPATH="/usr/local/Cellar/mingw-w64/10.0.0_3/toolchain-x86_64/x86_64-w64-mingw32/lib/;/usr/local/Cellar/mingw-w64/10.0.0_3/toolchain-x86_64/x86_64-w64-mingw32/bin/"` **Example Debian** `export WINEPATH="/usr/lib/gcc/x86_64-w64-mingw32/10-posix/;/usr/x86_64-w64-mingw32/lib/` The package that contains most of the runtime DLL's needed is `gcc-mingw-w64-x86-64-posix-runtime`, a dependency off `gcc-mingw-w64-x86-64-posix`. The `libwinpthread-1.dll` dependency is in `/usr/x86_64-w64-mingw32/lib/`, installed by package `mingw-w64-x86-64-dev`. ## GCC for linux You need to install the `posix` verison of gcc/g++! `apt-get install gcc-mingw-w64-x86-64-posix g++-mingw-w64-x86-64-posix` If the default version (not posix) is install, you will run into stuff like "mutex" header not existing.