我的发行版(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
并不是一个好主意。还有其他解决方案吗?
提前谢谢
一个。