Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get the explanation of gcc -s?

Tags:

gcc

I got the meaning of "gcc -s" through the search engine. It means stripping the symbols when linking.

But how can I get this information using "man gcc" or "gcc --help"? It seems to have no relevant information:

root@desktop:~# gcc --help
Usage: gcc [options] file...
Options:
  -pass-exit-codes         Exit with highest error code from a phase
  --help                   Display this information
  --target-help            Display target specific command line options
  --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]
                           Display specific types of command line options
  (Use '-v --help' to display command line options of sub-processes)
  --version                Display compiler version information
  -dumpspecs               Display all of the built in spec strings
  -dumpversion             Display the version of the compiler
  -dumpmachine             Display the compiler's target processor
  -print-search-dirs       Display the directories in the compiler's search path
  -print-libgcc-file-name  Display the name of the compiler's companion library
  -print-file-name=<lib>   Display the full path to library <lib>
  -print-prog-name=<prog>  Display the full path to compiler component <prog>
  -print-multi-directory   Display the root directory for versions of libgcc
  -print-multi-lib         Display the mapping between command line options and
                           multiple library search directories
  -print-multi-os-directory Display the relative path to OS libraries
  -print-sysroot           Display the target libraries directory
  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers
  -Wa,<options>            Pass comma-separated <options> on to the assembler
  -Wp,<options>            Pass comma-separated <options> on to the preprocessor
  -Wl,<options>            Pass comma-separated <options> on to the linker
  -Xassembler <arg>        Pass <arg> on to the assembler
  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor
  -Xlinker <arg>           Pass <arg> on to the linker
  -combine                 Pass multiple source files to compiler at once
  -save-temps              Do not delete intermediate files
  -pipe                    Use pipes rather than intermediate files
  -time                    Time the execution of each subprocess
  -specs=<file>            Override built-in specs with the contents of <file>
  -std=<standard>          Assume that the input sources are for <standard>
  --sysroot=<directory>    Use <directory> as the root directory for headers
                           and libraries
  -B <directory>           Add <directory> to the compiler's search paths
  -b <machine>             Run gcc for target <machine>, if installed
  -V <version>             Run gcc version number <version>, if installed
  -v                       Display the programs invoked by the compiler
  -###                     Like -v but options quoted and commands not executed
  -E                       Preprocess only; do not compile, assemble or link
  -S                       Compile only; do not assemble or link
  -c                       Compile and assemble, but do not link
  -o <file>                Place the output into <file>
  -x <language>            Specify the language of the following input files
                           Permissible languages include: c c++ assembler none
                           'none' means revert to the default behavior of
                           guessing the language based on the file's extension
like image 735
vv1133 Avatar asked Jun 01 '12 15:06

vv1133


People also ask

How do I find my GCC?

The GNU Compiler Collection (GCC) is a compiler system. It was created by the GNU Project supporting various programming languages such as C (gcc), C++ (g++), Objective-C, Objective-C++, Fortran (gfortran), Java (gcj), Ada (GNAT), and Go (gccgo). You need to use the which command to locate c compiler binary called gcc.

Whats the meaning of GCC?

The Gulf Cooperation Council (GCC) was established by an agreement concluded on 25 May 1981 in Riyadh, Saudi Arabia among Bahrain, Kuwait, Oman, Qatar, Saudi Arabia and UAE in view of their special relations, geographic proximity, similar political systems based on Islamic beliefs, joint destiny and common objectives.

What is the GCC command?

GCC stands for GNU Compiler Collections which is used to compile mainly C and C++ language. It can also be used to compile Objective C and Objective C++.


2 Answers

From man gcc:

   -s  Remove all symbol table and relocation information from the
       executable.

I found this by searching for "-s" (note leading and trailing space) in the man pager.

like image 62
Fred Foo Avatar answered Oct 21 '22 00:10

Fred Foo


On man gcc only more used and useful options are listed. The rest of documentation can be found on gcc online web page

From: http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#Link-Options

-s Remove all symbol table and relocation information from the executable.

like image 30
Jack Avatar answered Oct 21 '22 02:10

Jack