7 KiB
id | title | author |
---|---|---|
running-cpp | Running C++ | Nathan Wang, Benjamin Qi, Anthony Wang |
Running C++ both online and locally.
Running C++ Online
- OnlineGDB
- online compiler with an embedded GDB debugger
- can be buggy sometimes
- supports files and file I/O
- CSAcademy
- pretty nice (unless you get "Estimated Queue Time: ...")
- "saved locally" will not save your code if you close the tab, press Command-S to save.
- Ideone
- okay ... with an ad blocker
- make sure your code is not public
- sometimes erases your code when you first create it (so get in the habit of copying your code first)
Of course, you can't use file I/O on the latter two websites.
Running C++ Locally
On Mac
Clang is the default compiler for Mac OS X, but you should use GCC's g++.
Installation
First, Open Terminal. Familiarize yourself with some basic commands given here. You will also need to install Homebrew.
Run
brew install gcc
According to this if brew
doesn't seem to finish for a long time then
brew install gcc --force-bottle
probably suffices.
Confirmation
You should be able to compile with g++
or maybe g++-#
, where # is the version number (currently 9). Running the following command:
g++-9 --version
should display something like this:
g++-9 (Homebrew GCC 9.2.0_2) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Troubleshooting
Make sure you have installed XCode command line tools.
xcode-select --install # make sure x-code command line tools are installed
softwareupdate --list
softwareupdate -i -a # installs everything
On Windows
Like Windows in general, you have a lot of options for running C++.
The easiest option is to use an IDE such as Codeblocks or Visual Studio because they often have C++ support already built-in. See the IDEs section below for more information.
However, you can also use MinGW if you prefer compiling and running C++ using the command line. Another good option is Windows Subsystem for Linux (WSL) which is what I personally use, although it may be more difficult to properly set up.
Installing MinGW
First, download and run the MinGW installer. Once it's installed, open the MinGW Installation Manager, click on Basic Setup on the left, and select mingw32-gcc-g++-bin
for installation.
(Add MinGW to PATH: https://www.rose-hulman.edu/class/csse/resources/MinGW/installation.htm)
Installing WSL
https://code.visualstudio.com/docs/cpp/config-wsl (difficult for beginners)
On Linux
GCC is usually preinstalled on most Linux distros. You can check if it is installed with
whereis g++
If it is not preinstalled, you can probably install it using your distro's package manager.
Using the command line
(add tutorial or video?)
Consider a simple program such as the following, which we'll save in name.cpp
.
#include <bits/stdc++.h>
using namespace std;
int main() {
int x; cin >> x;
cout << "FOUND " << x << "\n";
}
It's not hard to compile & run a C++ program. First, open up Powershell on Windows or Terminal on Mac. We can compile name.cpp
into an executable named name
with the following command:
g++ name.cpp -o name
Then we can execute the program:
./name
If you type some integer and then press enter, then the program should produce output. We can write both of these commands in a single line:
g++ name.cpp -o name && ./name
Redirecting Input & Output
If you want to read input from inp.txt
and write to out.txt
, then use the following:
./name < inp.txt > out.txt
See "Intro - Introductory Problems" for how to do file input and output within the program.
Adding Shortcuts (Mac and Linux only)
(alternatives for Windows?)
Retyping the commands for compiling and running gets tedious once we start adding many command line options. See "General - Debugging" for more information about compilation options.
Open your bash profile with a text editor such as gedit (or sublime text).
brew install gedit
gedit ~/.zshenv
You can add aliases and functions here, such as the following to compile and run C++.
co() { g++ -std=c++11 -O2 -o $1 $1.cpp -Wall -Wextra -Wshadow -DLOCAL -Wl,-stack_size -Wl,0xF0000000; }
run() { co $1 && ./$1 & fg; }
Now you can easily compile and run name.cpp
from the command line with the following:
run name
Note that all occurrences of $1
are replaced with name
.
Tools
IDEs
- Geany
- Visual Studio Code
- lightweight, fast IDE, but requires some configuration
- Visual Studio
- heavier cousin of Visual Studio Code
- XCode
- Mac only
- Codeblocks
- bad on Mac
- CLion
- requires a license, but free for students
Text Editors
- Sublime Text 3
- a fast, lightweight text editor for Windows, Mac, and Linux
- Editing Build Settings
- FastOlympicCoding Addon
- Sublime Snippets
- Symlink
- Using
/usr/local/bin/subl
instead of~/bin/subl
worked for me on OS X Mojave.
- Using
- Atom
- another text editor for Windows, Mac, and Linux from the makers of Github
- Vim
- classic text editor, usually preinstalled on Mac and Linux, and also available for Windows
- probably easiest way to print syntax-highlighted code on Mac, see the response to this post
- Others?