0

私のディストリビューション (CentOS 6.3) には gcc 4.4.6 が付属しています。Fortran2003 の機能を試したかったので、gcc 4.7 をコンパイルすることにしました。

オンラインで見つけた手順に従いました。最初にgmp、mpc、mpfr、ppl、およびcloogを個別にコンパイルし、gccをコンパイルしました。

構成されたスクリプトを次のように実行します。

configure --prefix=... --with-gmp=... --with-mpfr=... --with-mpc=... --program-suffix=-4.7 --enable-cloog-backend=isl --with-ppl=... --with-cloog=... --disable-multilib

makeこれは問題なく動作し、 &でコンパイルできましたmake install

ここで、単純なテスト プログラム (Hello World のようなもの) で新しいコンパイラを試すと、次のエラーが発生します。

gfortran-4.7 -o test test.F90

/home/amcastro/gcc-4.7/output/libexec/gcc/x86_64-unknown-linux-gnu/4.7.0/f951: error while loading shared libraries: libcloog-isl.so.1: cannot open shared object file: No such file or directory

そこで、設定LD_LIBRARY_PATH=/home/amcastro/gcc-4.7/output/lib してからコンパイルすることにしました。

実行するとエラーが発生します:

./test

./test: error while loading shared libraries: libquadmath.so.0: cannot open shared object file: No such file or directory

だから私は設定しましたLD_LIBRARY_PATH=/home/amcastro/gcc-4.7/output/lib:/home/amcastro/gcc-4.7/output/lib64

そして今、プログラムは正常に実行されます。

問題は、私のディストリビューション バージョンの gcc (4.4.6) で設定する必要がないのはなぜLD_LIBRARY_PATHですか? ディストリビューション gcc は、これらの動的に好まれるライブラリを探す場所をどのように知っていますか? どうにかしてそれらを静的にリンクする必要がありますか? また、設定LD_LIBRARY_FLAGはお勧めできません。別の解決策はありますか?

前もって感謝します

A.

4

0 に答える 0