This document is my note on GCC parameters. I miss the time when I used a notebook to record all the parameters of DOS commands. haha, the following things may not be very comprehensive. I have referenced a lot of books and GCC help. the reason for being incomplete is that I may not see this parameter yet. Another reason is that I may not use it yet, but I will slowly complete it. haha if you want to transfer in this article please keep my email (ianopan@beeship.com) and comprehensive article. [Introduction] GCC and G ++ are respectively gnu c & C ++ Compilers Gcc/g ++ requires a total of four steps for compiling. 1. pre-process and generate the. I file 2. Convert the pre-processed files into assembly languages to generate file. S. 3. a. o file is generated by means of compilation into the target code (machine code ). 4. Connect the target code to generate an executable program [Parameter Details] -X language filename Set the language used by the file to make the suffix invalid. It will be valid for multiple later versions, that is, the root It is agreed that the C language suffix is. C, and the C ++ suffix is. C or. cpp. If You are very personal and decide that the suffix of your C code file is. Pig Haha, then you need to use this Parameter. This parameter applies to all file names after it, unless the next parameter is reached. . Can I use the following parameters? 'C', 'Objective-C', 'c-header', 'c ++ ', 'cpp-output ', 'Referer', and 'referer-with-CPP '. You can understand English. Example usage: Gcc-x C hello. Pig
-X none filename Turn off the previous option, that is, let GCC automatically identify the file type based on the file name suffix Example usage: Gcc-x C hello. Pig-x none hello2.c -C Only activate preprocessing, compilation, and assembly, that is, he only makes the program into an OBJ file. Example usage: Gcc-C hello. c It will generate the. o obj file -S Only activating preprocessing and compilation means compiling a file into assembly code. Example usage Gcc-s hello. c It will generate the. s assembly code. You can view it in a text editor. -E Only activate preprocessing. This does not generate a file. You need to redirect it to an output file. Area. Example usage: Gcc-e hello. c> pianoapan.txt Gcc-e hello. c | more Let's take a look. A Hello word should also process 800 lines of code. -O Specify the target name. The GCC compiled file is a. Out by default. If You and I share the same feelings, get rid of it, haha Example usage Gcc-O hello.exe hello. C (Oh, Windows is used to it) Gcc-O hello. ASM-s hello. c -Pipe Use pipelines to replace temporary files in compilation. When using non-GNU assembly tools, you may have some questions. Question Gcc-pipe-O hello.exe hello. c -ANSI Disable the incompatible features of ansi c in gnu c and activate the proprietary features of ansi c (including disabling Some ASM inline typeof keywords, as well as pre-processing macros such as UNIX and VAX, -Fno-ASM This option is part of the feature that implements the ANSI option. It does not allow the use of ASM, inline, and typeof Keyword. -Fno-strict-Prototype It only works for G ++. With this option, G ++ considers all functions without parameters as not explicitly Instead of having no parameters. Whether this parameter is used or not, GCC will not explicitly describe functions without parameters. Explicit type -Fthis-is-varialble Is to align with the traditional C ++, you can use this when the general variable is used. -Fcond-Mismatch The second and third parameter types of conditional expressions do not match. The expression value is of the void type. -Funsigned-Char -Fno-signed-Char -Fsigned-Char -Fno-Unsigned-Char These four parameters are used to set the char type and decide to set the char type to unsigned char (before Two Parameters) or signed Char (the last two parameters) -Include File Contains a code. Simply put, a file can be used when another file is needed. Using it to set the function is equivalent to using # include in the code Example usage: GCC hello. C-include/root/pianopan. h -Imacros File Extends the macro of the file to the input file of GCC/g ++. The macro definition does not appear in the input file. Medium -Dmacro Equivalent to # define macro in C -Dmacro = defn Equivalent to # define macro = defn in C -Umacro Equivalent to # UNDEF macro in C -UNDEF Cancel definition of any non-standard macros -Idir When you use # include "file", GCC/g ++ first searches for the header you have specified in the current directory. File. If not found, he will return to the default header file directory. If-I is used to specify the directory Go back to the directory you created, and then find it in the regular order. For # include, GCC/g ++ will go to the directory specified by-I and cannot find it. Default header file directory search -I- Is to cancel the function of the previous parameter, so it is generally used after-Idir -Idirafter dir An error occurred while searching in the-I directory. -Iprefix prefix -Iwithprefix dir Generally, if-I Directory Search fails, it will be searched under prefix + dir -Nostdinc Make the compiler no longer look for the header file in the system's default header file directory, which is generally used in conjunction with-I, clear Specify the header file location -Nostdin C ++ It is specified that the search is not in the standard path specified by G ++, but is still in another path. This option is created Libg ++ library usage -C During pre-processing, do not delete the annotation information, which is generally used with-E. Sometimes the analysis program uses this Convenient -M Generate file association information. Contains all source code on which the target file depends You can use gcc-M hello. C to test it. -Mm It is the same as the one above, but it will ignore the dependency caused by # include. -MD It is the same as-M, but the output will be imported into the. d file. -MMD It is the same as-mm, but the output will be imported into the. d file. -Wa, Option This option is passed to the assembler; if there is a comma in the option, the option is divided into multiple options And then pass it to the assembler. -WL. Option This option is passed to the connection program. If there is a comma in the option, the option is divided into multiple options. And then pass it to the connected program.
-Llibrary Library Used during compilation Example usage Gcc-lcurses hello. c Compile the program using the ncurses Library -Ldir Specify the path of the database to be searched during compilation. For example, you can use your own library to create a directory. Otherwise The compiler will only find it in the standard library directory. This DIR is the directory name. -O0 -O1 -O2 -O3 The compiler has four levels of optimization options.-O0 indicates no optimization,-O1 indicates the default value, and-O3 indicates the most optimized level. High -G It is only a compiler. during compilation, information is generated. -Maid This option claims debugging information in stabs format, but does not include GDB debugging information. -Gstabs + This option claims debugging information in stabs format and contains additional debugging information for GDB only. -Ggdb This option will generate debugging information that can be used by GDB as much as possible. |