CS253 How I Compile
I don’t use an IDE, like Eclipse. I work from the command line. I use
vim to edit, and g++ to compile. You may edit and compile your
programs however you like—I just expect you to turn in a .cc
file.
How you produce it is your affair.
I generally compile C++ programs like this:
g++ -std=c++11 -Wall -Wextra -Wpedantic -Werror -Wfatal-errors foo.cc
-std=c++11
: Compile strict C++ 2011, without GNU extensions.
-Wall
: Produce all warnings.
-Wextra
: Produce more warnings.
-Wpedantic
: Produce ultra-fussy warnings.
-Werror
: Treat warnings as errors.
-Wfatal-errors
: Give up after the first error.
“But that’s too hard to type every time!”
You don’t have to type it every time. Type it once, and use shell
history (!g
) to do it again. Or, you could write a two-line bash
script.
However, when I get really serious, as in a Makefile
:
g++ -g -std=c++11 -Wall -Wextra -Wpedantic -Werror -Wfatal-errors -Winit-self -Wshadow -Wlogical-op -Wcomment -Wctor-dtor-privacy -Wold-style-cast -D_GLIBCXX_DEBUG -fno-diagnostics-show-option -fmessage-length=$COLUMNS foo.cc
“But that’s ridiculous! I shouldn’t have to type all that.”
Yeah, you shouldn’t—it’s terribly unfair. If life were fair, then the compiler would do all that by default, and ice cream would be good for you. Get over it. I don’t type it all every time—I copy it.
Also, I compile an important program with more than one compiler. Different compilers generate different warnings. clang++ works well on Linux.
“More warnings? Why on earth would I want more wanings!?”
I wish you the best of luck with your career in the fast-food industry.
Modified: 2017-01-17T19:54 User: Guest Check: HTML CSSEdit History Source |
Apply to CSU |
Contact CSU |
Disclaimer |
Equal Opportunity Colorado State University, Fort Collins, CO 80523 USA © 2015 Colorado State University |