プログラムをインストールして実行しようとしています。ダイエット。これを行うには、ローカルに最新バージョンのgccをインストールする必要がありました(root / superuser権限がなかったため)。次のコマンドを使用してこれを実行しました。
cd /scratch/wdavis/Tools/source/gcc-4.9.4/
./contrib/download_prerequisites
cd /scratch/wdavis/Tools/gcc/
/scratch/wdavis/Tools/source/gcc-4.9.4/configure --prefix /scratch/wdavis/Tools/local/ --disable-multilib
make bootstrap-lean
make install
すべてがうまくいっているようです。その後、DSuiteの使用を開始しました。
git clone https://github.com/millanek/Dsuite.git
cd Dsuite/
cd utils/
python3 setup.py install --user --prefix=
cd ../
g ++()の正しいバージョンを見つけることができる場所を知らせるために、Makefileを編集する必要がありました/scratch/wdavis/Tools/local/bin/g++
。それから電話しましたmake
。すべてがうまくいくようです。ただし、DSuiteでは、次のエラーが発生します。
Dsuite: /lib64/libstdc++.so.6: version
GLIBCXX_3.4.20 'が見つかりません(Dsuiteに必要)
2つの答えが見つかりましたここそしてここ-L/usr/local/lib64
提案:「必要に応じてビルドして実行してみることができますLD_LIBRARY_PATH=/usr/local/lib64
。
export LD_LIBRARY_PATH=/scratch/wdavis/Tools/local/lib64/
Dsuiteを実行します。しかし、make -L/scratch/wdavis/Tools/local/lib64/
何も動作しませんでした。つまり、Dsuiteで再構築後も同じエラーが発生しました。
私の質問は次のとおりです
実行時に動的リンカが正しいディレクトリにライブラリを見つけるようにプログラムをどのように設定しますか?
export LD_LIBRARY_PATH=/scratch/wdavis/Tools/local/lib64/
実行してDsuiteを実行するように設定してからLD_LIBRARY_PATHをリセットせずに他のプログラムを実行し続けるとどうなりますか?LD_LIBRARY_PATHをリセットする方法は?
よろしくお願いします。
答え1
make -L/scratch/wdavis/Tools/local/lib64/
間違った。
-L
ld
makeではなく、GCCおよびリンカフラグ(例:)。
アプリケーションの言語に応じて、CFLAGSまたはCXXFLAGSエクスポートを介してそれらをエクスポートする必要があります。 LDFLAGS経由でエクスポートすることもできます。これはすべてアプリケーションの構築とリンク方法によって異なり、GCCまたはldを使用して最終バイナリ/ライブラリをコンパイルできます。
例えば
export CFLAGS="-L/scratch/wdavis/Tools/local/lib64/"
export CXXFLAGS="-L/scratch/wdavis/Tools/local/lib64/"
export LDFLAGS="-L/scratch/wdavis/Tools/local/lib64/"
./configure && make
LD_LIBRARY_PATH
glibcのフラグであり、その目的は次のとおりです。実装する接続する代わりにアプリケーションを使用してください。
説明書をよくお読みください。中にすべて入っていますman gcc
、、、man ld
man ld.so
man bash
あなたはそうですunset VAR_NAME