最終更新:2021-03-08 (月) 09:30:46 (1308d)  

gcc
Top / gcc

http://linuxjm.sourceforge.jp/html/GNU_gcc/man1/gcc.1.html

http://www.geocities.jp/woodwood77777/gcc_gnu.htm

SYNOPSIS

gcc [-c|-S|-E] [-std=standard]
   [-g] [-pg] [-Olevel]
   [-Wwarn...] [-pedantic]
   [-Idir...] [dir...]
   [-Dmacro[=defn]...] [-Umacro]
   [-foption...] [-mmachine-option...]
   [-o outfile] [@file] infile...

gcc hoge.cpp -o hoge

アーキテクチャ別

プリプロセッサ

引数

  • パラメータ意味値とか
    gcc -W?警告の表示all-Wall
    gcc -o出力するファイル名ファイル名-o test.a
    gcc -OGCC/最適化1,2,3-O3
    gcc -Sアセンブリ出力
    gcc -cコンパイルはするがリンクはしない。オブジェクトファイルを出力。
    gcc -ECプリプロセッサの処理のみを行なう
    gcc -mプロセッサごとのオプション
    gcc -v(標準エラー出力に対して) コンパイルの各ステージで実行されるコマンドを表示
    gcc -shared?
    gcc -s?
    gcc -gデバッグ情報を生成
    gcc -Wa?,<options>Pass comma-separated <options> on to the assembler
    gcc -Wp?,<options>Pass comma-separated <options> on to the preprocessor
    gcc -Wl,<options>Pass comma-separated <options> on to the linker (ld)-Wl,-s -Wl,-S

オプション

ディレクトリオプション

  • -I(dir) - dirをインクルードパスに追加
  • -L(dir) - dirを-lによって指定されたライブラリの検索パスに追加

-x : Specify the source language

  • -x c
  • -x c++
  • -x objective-c
  • -x assembler-with-cpp

リンカオプション

  • -l(library) - 名前が library であるライブラリをリンク時に使用 (libxxxのxxxを指定)
  • -c - コンパイルはするがリンクはしない。オブジェクトファイルを出力。
  • -S - アセンブリ出力
  • -E - Cプリプロセッサの処理のみを行なう

プリプロセッサ

  • -D macro - マクロ macro に対して文字列 `1' を定義として与える。
  • -D name=definition - nameマクロを定義

検索パス

  • gcc -print-search-dirs

プリプロセッサで定義済みのマクロを表示

  • gcc -dM -E -xc /dev/null
  • -dM - プリプロセッサに対して、プリプロセス終了時に有効であったマクロの定義の みを出力とすることを指定する。`-E' オプションとともに使用する。
  • -E - プリプロセッサの処理のみを行なう
  • -xc - 言語を指定。-x language

Ubuntu/パッケージ

依存

コマンド

  • c89-gcc?
  • c99-gcc?
  • gcc -> gcc-5
  • gcc-ar? -> gcc-ar-5?
  • gcc-nm? -> gcc-ar-5?
  • gcc-ranlib? -> gcc-ranlib-5?
  • gcov -> gcov-5?
  • gcov-tool? -> gcov-tool-5?
  • x86_64-linux-gnu-gcc -> gcc-5
  • x86_64-linux-gnu-gcc-ar?
  • x86_64-linux-gnu-gcc-nm?
  • x86_64-linux-gnu-gcc-ranlib?
  • x86_64-linux-gnu-gcov?
  • x86_64-linux-gnu-gcov-tool?

help

  •  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={common|optimizers|params|target|warnings|[^]{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-multiarch         Display the target's normalized GNU triplet, used as
                               a component in the library path.
      -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.
      -save-temps              Do not delete intermediate files.
      -save-temps=<arg>        Do not delete intermediate files.
      -no-canonical-prefixes   Do not canonicalize paths when building relative
                               prefixes to other gcc components.
      -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.
      -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>.
      -pie                     Create a dynamically linked position independent
                               executable.
      -shared                  Create a shared library.
      -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.
    
    Options starting with -g, -f, -m, -O, -W, or --param are automatically
     passed on to the various sub-processes invoked by gcc.  In order to pass
     other options on to these processes the -W<letter> options must be used.
    
    For bug reporting instructions, please see:
    <file:///usr/share/doc/gcc-9/README.Bugs>.