📢 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> | ||