in most cases -o will stand for output but it's not a defined standard it can potentially mean anything the developer wanted it to mean, the only way someone can know which commands is to use a command line option of --help, -h, or something -? to display a 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 run
man gcc
replacing the second part with the program name you want.
man <program name>
This lists a full guide for the program with a lot more detail and is usually well formated to read on a terminal. just press Q when your finished reading it.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…