diff --git a/Cross-Compiling.md b/Cross-Compiling.md index 33a8033..930515c 100644 --- a/Cross-Compiling.md +++ b/Cross-Compiling.md @@ -1,21 +1,33 @@ -### If you wish to cross compile from a Linux system to Windows you can quite easily do so. +**If you wish to cross compile from a Linux system to Windows you can quite easily do so.** -Start by installing sys/windows from the standard library -`go get golang.org/x/sys/windows` +Start by installing sys/windows from the standard library: -Then you'll need the mingw compiler. -* Debian/Ubuntu: -`sudo apt install mingw-w64` -_Note:_ If package cannot be found on ubuntu make sure you've added the multiverse repository -(`sudo add-apt-repository multiverse`) +```sh +go get golang.org/x/sys/windows +``` -When completed you should be able to cross compile using this: -`CGO_ENABLED=1 CXX=x86_64-w64-mingw32-g++ CC=x86_64-w64-mingw32-gcc GOOS=windows GOARCH=amd64 go build file.go` +Then you'll need the mingw compiler. For example, on Debian/Ubuntu, run this command: + +```sh +sudo apt install mingw-w64 +``` + +_Note:_ If package cannot be found on ubuntu make sure you've added the multiverse repository (`sudo add-apt-repository multiverse`) + +When completed you should be able to cross compile using this: + +```sh +CGO_ENABLED=1 CXX=x86_64-w64-mingw32-g++ CC=x86_64-w64-mingw32-gcc GOOS=windows GOARCH=amd64 go build file.go +``` + +## Tips Since that's quite a messy command to use each time you want to test your program you might wanna set up a bash alias in your .bashrc or .profile file. * `nano ~/.bashrc` -* add this line -`alias LinuxtoWindows="export CXX=x86_64-w64-mingw32-g++ && export CC=x86_64-w64-mingw32-gcc && CGO_ENABLED=1 && GOOS=windows"` -to the bottom of the file. +* add the below line to the bottom of the file: -Now you may simply use `LinuxToWindows && go build file.go` to cross compile \ No newline at end of file +```sh +alias LinuxtoWindows="export CXX=x86_64-w64-mingw32-g++ && export CC=x86_64-w64-mingw32-gcc && CGO_ENABLED=1 && GOOS=windows" +``` + +Now you may simply use `LinuxToWindows && go build file.go` to cross compile. \ No newline at end of file