1. Install devkitPro's devkitARM from Github.
2. Upon finished installation, navigate to installation folder.
3. Run msys2.
4. Type "pacman -Sl" (That's an lowercase L, not uppercase I)
5. Install all the packages you need using "pacman -Syyu [package 1 name] [package 2 name] [package 3 name] ...", with whitespaces in between each package name. All names must be fully matching the one shown in the list above.
6. Navigate to the devkitARM installation root folder.
7. Open templates folder.
8. Copy the "switch/templates/application/Makefile". You need this.
9. Paste your copied Makefile to a destination folder, the folder that you'll be working Switch homebrew apps with. We'll call this folder, [DESTINATION] for now.
10. In that same destination folder, create a new folder called "source".
11. In your "source" folder, this is where you put your C++ and C codes in.
12. Open Makefile. Use whatever text editing software you want to use. I preferably use Visual Studio 2017, because it supports a lot of things, and Linux libraries now, but all other editors are fine. Stick with it.
13. Edit the Makefile contents by following the instructions.
14. Open up a terminal / console.
15. Navigate to your modified Makefile through the terminal / console.
16. Type "make".
17. If all is successful, you should see 5 types of generated files with your destination folder as the names. You need your [DESTINATION].nro.
18. Power on your Switch.
19. Do whatever you need to do to get into Homebrew Launcher.
20. In the Homebrew Launcher, execute NXLink. It should now freeze, and is attempting to wait on you to send your NRO files over to the Switch.
21. Back to the terminal / console, run/launch "nxlink -ip [YOUR SWITCH'S IP ADDRESS, WITHOUT PORT NUMBER] [DESTINATION].nro".
22. See your NRO file booting and running.
23. Rinse and repeat. Total setup should take about 30 minutes to 1 hour, depending on how fast you access your Homebrew Launcher.