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

編集の要約なし
65行目: 65行目:
<br>
<br>
最後に、PCを再起動する。<br>
最後に、PCを再起動する。<br>
<br><br>
== 共有ライブラリの参照設定 ==
GCCをソースコードからインストールした場合、共有ライブラリが/<GCCのインストールディレクトリ>/lib64に作成されるが、<br>
環境変数のパスが通っていないため、Linuxから参照されない。<br>
<br>
そのため、以下のいずれかの方法で環境変数のパスを通す必要がある。<br>
* /etc/ld.so.confファイルに記述する。(システム全体)
* ~/.profileファイルまたは~/.bashrcファイル等に、LD_LIBRARY_PATHを記述する。(ユーザごとに設定が必要)
<br>
==== ld.so.confファイルに設定する ====
/etc/ld.so.confファイルに<code>/<GCCのインストールディレクトリ/lib64</code>を追記することで、Linuxがライブラリを認識する。<br>
以下のコマンドを実行して、設定を追記する。<br>
sudo vi /etc/ld.so.conf
# /etc/ld.so.confファイル
/<GCCのインストールディレクトリ/lib64
<br>
上記の設定を反映させるため、<code>ldconfig</code>コマンドを実行する。<br>
ldconfig -v
<br>
<code>ldconfig</code>コマンドを実行した時に表示される情報から、<br>
以下のように、<code>/<GCCのインストールディレクトリ/lib64</code>ディレクトリが読み込まれていることを確認する。<br>
/<GCCのインストールディレクトリ>/lib64:
ldconfig: /<GCCのインストールディレクトリ>/lib64/libstdc++.so.6.0.25-gdb.py is not an ELF file - it has the wrong magic bytes at the start.
        libatomic.so.1 -> libatomic.so.1.2.0
        libitm.so.1 -> libitm.so.1.0.0
        libgomp.so.1 -> libgomp.so.1.0.0
        libquadmath.so.0 -> libquadmath.so.0.0.0
        libssp.so.0 -> libssp.so.0.0.0
        libmpxwrappers.so.2 -> libmpxwrappers.so.2.0.1
<br>
<code>ldconfig</code>コマンドを実行した結果、もし、以下のようなメッセージが表示された場合の対処方法を記載する。<br>
ldconfig: /<GCCのインストールディレクトリ>/lib64/libstdc++.so.6.0.25-gdb.py is not an ELF file - it has the wrong magic bytes at the start.
<br>
これは、libstdc++.so.6.0.25-gdb.pyは、pythonのスクリプトであるが、これを共有ライブラリとして認識していることが原因である。<br>
file /<GCCのインストールディレクトリ>/lib64/libstdc++.so.6.0.25-gdb.py
/<GCCのインストールディレクトリ>/lib64/libstdc++.so.6.0.25-gdb.py: Python script, ASCII text executable
<br>
対処方法としては、該当ファイルの名前を変更して、共有ライブラリと認識されないようする。<br>
mv /<GCCのインストールディレクトリ>/lib64/libstdc++.so.6.0.25-gdb.py  /<GCCのインストールディレクトリ>/lib64/libstdc++.so.6.0.25-gdb.py_org
<br>
再度、<code>ldconfig</code>コマンドを実行する。<br>
ldconfig -v
<br>
また、<u>CentOS 7の場合</u>、/etc/ld.so.confファイルに<code>include ld.so.conf.d/*.conf</code>と設定されているが、<br>
これは、ld.so.conf.dディレクトリ内のconf拡張子をもつファイルの内容を読み込むという設定である。<br>
<br>
ld.so.conf.dディレクトリ内に/<GCCのインストールディレクトリ>/lib64と記述したconfファイルを作成することにより、<br>
Linuxに共有ライブラリのパスを認識させることができる。<br>
<br>
ここでは、/etc/ld.so.conf.d/UserAdd-lib64.confファイルを作成する。<br>
sudo vi /etc/ld.so.conf.d/UserAdd-lib64.conf
# UserAdd-lib64.confファイル
/<GCCのインストールディレクトリ>/lib64
<br>
上記の設定を反映させるため、<code>ldconfig</code>コマンドを実行する。<br>
ldconfig -v
<br>
==== LD_LIBRARY_PATHに設定する ====
この方法は、ユーザごとに設定する必要がある。<br>
~/.profileファイルまたは~/.bashrcファイル等に、LD_LIBRARY_PATHの設定を追加することで、ユーザがログインする際に設定が読み込まれる。<br>
vi ~/.profile
# ~/.profileファイル
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/<GCCのインストールディレクトリ>/lib64
<br>
上記の設定を反映させるため、PCを再起動または再ログインする。<br>
<br><br>
<br><br>