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不是一个好主意。还有其他解决方案吗?

先感谢您

一个。

4

0 回答 0