📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の16版が非表示)
11行目: 11行目:


== 依存関係のライブラリのインストール ==
== 依存関係のライブラリのインストール ==
==== パッケージ管理システムの使用 ====
GDBの依存関係のライブラリをインストールする。<br>
GDBの依存関係のライブラリをインストールする。<br>
  # CentOS
  # RHEL
  sudo yum install texinfo gcc gcc-c++ make python3-devel mpfr-devel wget
  sudo dnf install bison m4 flex gawk wget make texinfo gcc gcc-c++ python3-devel \
                  xz-devel xxhash-devel gmp-devel mpfr-devel mpc-devel isl-devel
   
   
  # SUSE
  # SUSE
  sudo zypper install texinfo gcc gcc-c++ make python3-devel mpfr-devel wget
  sudo zypper install bison m4 flex gawk wget texinfo make gcc gcc-c++ python3-devel \
                    xz-devel xxhash-devel gmp-devel mpfr-devel mpc-devel isl-devel
<br>
<br>
<u>Texinfoをパッケージ管理システムを使用してインストールする場合は膨大な時間が掛かるため、手動でインストールすることを推奨する。</u><br>
==== Texinfoを手動でインストールする場合 ====
<u>Texinfoをパッケージ管理システムを使用してインストールする場合は膨大な時間が掛かるため、手動でインストールしてもよい。</u><br>
# まず、Texinfoの[https://ftp.gnu.org/gnu/texinfo/ 公式Webサイト]から、Texinfoをダウンロードする。
# まず、Texinfoの[https://ftp.gnu.org/gnu/texinfo/ 公式Webサイト]から、Texinfoをダウンロードする。
# 次に、Texinfoを解凍して、Texinfoディレクトリ直下にbuildディレクトリを作成する。
# 次に、Texinfoを解凍して、Texinfoディレクトリ直下にbuildディレクトリを作成する。
#: <code>mkdir build</code>
#: <pre>mkdir build</pre>
# Texinfoをビルドおよびインストールするため、以下のコマンドを実行する。
# Texinfoをビルドおよびインストールするため、以下のコマンドを実行する。
#: <code>../configure --prefix=/home/<ユーザ名>/InstallSoftware/Texinfo</code>
#: <syntaxhighlight lang="text">
#: <code>make -j $(nproc)</code>
../configure --prefix=/<Texinfoのインストールディレクトリ>
#: <code>make TEXMF=/home/<ユーザ名>/InstallSoftware/Texinfo/texmf install-tex</code>
#: <code>make install</code>
make -j $(nproc)
# .profileファイルまたは.bashrcファイル等に、以下の環境変数を追記する。
make TEXMF=/<Texinfoのインストールディレクトリ>/texmf
#: <code>export PATH="$HOME/InstallSoftware/Texinfo/bin:$PATH"</code>
      install-tex
#: <code>export LD_LIBRARY_PATH="$HOME/InstallSoftware/Texinfo/lib64:$LD_LIBRARY_PATH"</code>
make install
</syntaxhighlight>
# ~/.profileファイル等に、以下に示す環境変数を設定する。
#: <syntaxhighlight lang="sh">
export PATH="/<Texinfoのインストールディレクトリ>/bin:$PATH"
export LD_LIBRARY_PATH="/<Texinfoのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"
</syntaxhighlight>
<br><br>
<br><br>


== GDBのインストール ==
== GDBのインストール ==
GDBの公式Webサイトから、GDBのソースコードをダウンロードする。<br>
==== 共通 ====
[https://ftp.gnu.org/gnu/gdb/ GDBの公式Webサイト]から、GDBのソースコードをダウンロードする。<br>
または、以下のコマンドを実行してダウンロードする。<br>
または、以下のコマンドを実行してダウンロードする。<br>
  wget https://ftp.gnu.org/gnu/gdb/gdb-<バージョン名>.tar.xz
  wget https://ftp.gnu.org/gnu/gdb/gdb-<バージョン名>.tar.xz
45行目: 56行目:
<br>
<br>
<u>※注意</u><br>
<u>※注意</u><br>
<u>Qt Creatorにおいて、ユーザが個別にインストールしたGDBを使用する時は、</u><br>
<u>Qt Creatorにおいて、ユーザが個別にインストールしたGDBを使用する場合は、</u><br>
<u>GDBをコンパイルする際に、以下のように、Pythonの実行ファイルとライブラリのパスを指定する必要がある。</u><br>
<u>GDBをコンパイルする時に、以下に示すように、Pythonの実行ファイルとライブラリのパスを指定する必要がある。</u><br>
  [ -z "${PYTHON}" ] && export PYTHON=<Python3の実行ファイルのフルパス>
  [ -z "$PYTHON" ] && export PYTHON=<Python3の実行ファイルのフルパス>; \
  PYTHON_LIBDIR=$("${PYTHON}" -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")
  export PYTHON_LIBDIR=$("$PYTHON" -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")
   
   
  例.
  例.
  [ -z "${PYTHON}" ] && export PYTHON=/home/<ユーザ名>/InstallSoftware/Python/Python-3_8_8/bin/python3.8
  [ -z "$PYTHON" ] && export PYTHON=$HOME/Python/bin/python3.8; \
  PYTHON_LIBDIR=$("${PYTHON}" -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")
  export PYTHON_LIBDIR=$("$PYTHON" -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")
<br>
<br>
以下のコマンドを実行して、GDBをインストールする。<br>
==== ネイティブ向け ====
# ネイティブ向けGDBの場合
GDBをビルドおよびインストールする。<br>
  ../configure --prefix="$HOME/InstallSoftware/GDB/GDB-<バージョン名>" \
  ../configure --prefix="$HOME/InstallSoftware/GDB/GDB-<バージョン名>" \
               --with-python="${PYTHON}" LDFLAGS="-L${PYTHON_LIBDIR}" \
               --with-python="$PYTHON" LDFLAGS="-L$PYTHON_LIBDIR" \
               --program-suffix=<サフィックス  例. _11_1>  # 必要であれば、パッケージ管理システムのGDBと名前が重複しないようにすることも可能
               --program-suffix=<サフィックス  例. _12_1>  # 必要であれば、パッケージ管理システムのGDBと名前が重複しないようにすることも可能
make -j $(nproc)
   
   
  # AArch64クロスコンパイラ向けGDBの場合
  make install        # 全てインストールする場合
# または
make -C gdb install  # 最小限のGDBのみインストールする場合
<br>
==== AArch64 クロスコンパイラ向け ====
GDBをビルドおよびインストールする。<br>
export PATH="/<AArch64向けBinutisおよびAArch64向けGCCのインストールディレクトリ>/bin:$PATH" && \
  ../configure --prefix=<AArch64クロスコンパイラ向けGCCのインストールディレクトリ> \
  ../configure --prefix=<AArch64クロスコンパイラ向けGCCのインストールディレクトリ> \
               --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=aarch64-unknown-linux-gnu \
               --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=aarch64-linux-gnu \
               --with-python="${PYTHON}" LDFLAGS="-L${PYTHON_LIBDIR}" \
              --with-python="$PYTHON" LDFLAGS="-L$PYTHON_LIBDIR -static-libstdc++" \
               --program-suffix=<サフィックス  例. _11_1> # 必要であれば、パッケージ管理システムのGDBと名前が重複しないようにすることも可能
              --disable-multilib --disable-nls \
              --with-sysroot=<ターゲットのシステムルートディレクトリ>  \  # 不要の可能性あり
              CFLAGS="-g0 -O3 -fstack-protector-strong"    \  # 不要の可能性あり
              CXXFLAGS="-g0 -O3 -fstack-protector-strong"  \  # 不要の可能性あり
              --program-suffix=<サフィックス  例. _12_1>          # 複数のGDBと名前が重複しないようにすることも可能
make -j $(nproc)
make install        # 全てインストールする場合
# または
make -C gdb install  # 最小限のGDBのみインストールする場合
<br>
==== H8/300 クロスコンパイラ向け ====
GDBをビルドおよびインストールする。<br>
export PATH="/<AArch64向けBinutisおよびAArch64向けGCCのインストールディレクトリ>/bin$PATH" && \
              ../configure --prefix=<AArch64クロスコンパイラ向けGCCのインストールディレクトリ> \
              --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=h8300-elf \
               --with-python="$PYTHON" LDFLAGS="-L$PYTHON_LIBDIR -static-libstdc++" \
              --disable-multilib --disable-nls \
              CFLAGS="-g0 -O3 -fstack-protector-strong"    \  # 不要の可能性あり
              CXXFLAGS="-g0 -O3 -fstack-protector-strong"  \  # 不要の可能性あり
               --program-suffix=<サフィックス  例. _12_1>           # 複数のGDBと名前が重複しないようにすることも可能
   
   
  make -j $(nproc)
  make -j $(nproc)
72行目: 112行目:
  make -C gdb install  # 最小限のGDBのみインストールする場合
  make -C gdb install  # 最小限のGDBのみインストールする場合
<br>
<br>
==== パスの設定 ====
必要に応じて、~/.profileファイル等に環境変数を設定する。<br>
必要に応じて、~/.profileファイル等に環境変数を設定する。<br>
<syntaxhighlight lang="sh">
  export PATH="/<GDBのインストールディレクトリ>/bin:$PATH"
  export PATH="/<GDBのインストールディレクトリ>/bin:$PATH"
  export LD_LIBRARY_PATH="/<GDBのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"
  export LD_LIBRARY_PATH="/<GDBのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"
</syntaxhighlight>
<br><br>
<br><br>


== 警告およびエラー ==
== 警告およびエラー ==
以下に示すような警告が出力される場合がある。<br>
以下に示すような警告が出力される場合がある。<br>
  warning: File "/home/<ユーザ名>/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
  warning: File "/path/to/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
<br>
<br>
この時、~/.gdbinitファイルを作成して、以下の設定を記述する。<br>
この時、~/.gdbinitファイルを作成して、以下の設定を記述する。<br>
92行目: 135行目:


__FORCETOC__
__FORCETOC__
[[カテゴリ:CentOS]][[カテゴリ:SUSE]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]]