In most cases -o will stand for output but it's not the defined standard it can potentially mean anything the developer wanted it to mean, the only way someone can know which commands is to use the command line option is --help, -h, or something -? to display the simple list of commands, again because the developer of the program chooses the possible input arguments and there meaning this might differ from program to program.
The safest way to know is typically the run
man gcc
Replacing this second part with a program name you want.
man <program name>
This lists the full guide for a program with more details and is usually well formated to read on the terminal. just press Q when your finished reading it.
Want to be a Linux expert? Come and join this linux course