Ubuntu 15.04 64 또는 Mac OS X 10.10.5가 설치된 Trisquel 7.0 LTS Belenos 64: isl/gcc 문제(libisl.so.13 문제)

Ubuntu 15.04 64 또는 Mac OS X 10.10.5가 설치된 Trisquel 7.0 LTS Belenos 64: isl/gcc 문제(libisl.so.13 문제)

최근에 마지막 64비트 trisquel 배포판을 설치하고 소스에서 gcc 5.2.0을 빌드했습니다. 내가 사용한 설치 기술은 다음과 같이 ubuntu 15.04 64비트에서 사용한 것과 정확히 동일하며 작동하며 gcc에 isl 및 cloog 최적화를 사용합니다.

wget https://ftp.gnu.org/gnu/gmp/gmp-6.0.0a.tar.xz

tar -Jxf gmp-6.0.0a.tar.xz

cd gmp-6.0.0/

mkdir build && cd build

../configure --prefix=/usr/local/lvm/gmp-6.0.0 --enable-cxx

make -j 4

sudo make install

sudo make check

cd ..

cd ..

wget http://www.mpfr.org/mpfr-3.1.2/mpfr-3.1.2.tar.gz

tar xvzf mpfr-3.1.2.tar.gz

cd mpfr-3.1.2

mkdir build && cd build

../configure --prefix=/usr/local/lvm/mpfr-3.1.2 --with-gmp=/usr/local/lvm/gmp-6.0.0

make -j 4

sudo make install

cd ..

cd ..

wget http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz

tar xvzf mpc-1.0.3.tar.gz

cd mpc-1.0.3

mkdir build && cd build

LD_LIBRARY_PATH=/usr/local/lvm/gmp-6.0.0/lib:/usr/local/lvm/mpfr-3.1.2/lib ../configure --prefix=/usr/local/lvm/mpc-1.0.3 --with-gmp=/usr/local/lvm/gmp-6.0.0 --with-mpfr=/usr/local/lvm/mpfr-3.1.2

LD_LIBRARY_PATH=/usr/local/lvm/gmp-6.0.0/lib:/usr/local/lvm/mpfr-3.1.2/lib make -j 4

sudo make install

cd ..

cd ..

wget http://isl.gforge.inria.fr/isl-0.14.tar.gz

tar xvzf isl-0.14.tar.gz

cd isl-0.14/

mkdir build && cd build

LD_LIBRARY_PATH=/usr/local/lvm/gmp-6.0.0/lib ../configure --prefix=/usr/local/lvm/isl-0.14 --with-gmp-prefix=/usr/local/lvm/gmp-6.0.0

LD_LIBRARY_PATH=/usr/local/lvm/gmp-6.0.0/lib make -j 4

sudo make install

cd ..

cd ..

wget "http://www.bastoul.net/cloog/pages/download/cloog-0.18.4.tar.gz"

tar xvzf cloog-0.18.4.tar.gz

cd cloog-0.18.4

mkdir build && cd build

LD_LIBRARY_PATH=/usr/local/lvm/isl-0.14/lib:/usr/local/lvm/gmp-6.0.0/lib ../configure -prefix=/usr/local/lvm/cloog-0.18.4 --with-isl-prefix=/usr/local/lvm/isl-0.14 --with-gmp-prefix=/usr/local/lvm/gmp-6.0.0

LD_LIBRARY_PATH=/usr/local/lvm/isl-0.14/lib:/usr/local/lvm/gmp-6.0.0/lib make -j 4

sudo make install

cd ..

cd ..

wget ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-5.2.0/gcc-5.2.0.tar.gz

tar xvzf gcc-5.2.0.tar.gz

cd gcc-5.2.0

mkdir build && cd build

# I DON'T PASS  --disable-multilib

LD_LIBRARY_PATH=/usr/local/lvm/gmp-6.0.0/lib:/usr/local/lvm/mpfr-3.1.2/lib:/usr/local/lvm/mpc-1.0.3/lib:/usr/local/lvm/isl-0.14/lib:/usr/local/lvm/cloog-0.18.4/lib ../configure --prefix=/usr/local/lvm/gcc-5.2.0 --enable-checking=release --with-gmp=/usr/local/lvm/gmp-6.0.0 --with-mpfr=/usr/local/lvm/mpfr-3.1.2 --with-mpc=/usr/local/lvm/mpc-1.0.3 --enable-languages=c,c++,fortran,objc,obj-c++ --with-isl=/usr/local/lvm/isl-0.14 --with-cloog=/usr/local/lvm/cloog-0.18.4 --program-suffix=-5.2.0

LD_LIBRARY_PATH=/usr/local/lvm/gmp-6.0.0/lib:/usr/local/lvm/mpfr-3.1.2/lib:/usr/local/lvm/mpc-1.0.3/lib:/usr/local/lvm/isl-0.14/lib:/usr/local/lvm/cloog-0.18.4/lib make -j 4

sudo make install 

그 후 일부 C++11 기능을 테스트하고 싶었기 때문에 다음 내용으로 tst_lambda.cpp 파일을 만들었습니다.

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    cout << [](int m, int n) { return m + n;} (2,4) << endl;
    vector<int> V({1,2,3});
    cout << "V =" << endl;
    for(auto e : V)
    {
        cout << e << endl;
    }
    return 0;
}

그리고 다음을 사용하여 실행 파일을 빌드합니다.

export LD_LIBRARY_PATH=/usr/local/lvm/gmp-6.0.0:/usr/local/lvm/mpfr-3.1.2:/usr/local/lvm/mpc-1.0.3:/usr/local/lvm/cloog-0.18.4:/usr/local/lvm/isl-0.14:/usr/local/lvm/gcc-5.2.0/lib64
export PATH=/usr/local/lvm/gcc-5.2.0/bin/:$PATH
g++-5.2.0 -std=c++11 tst_lambda.cpp -o tst_lambda

Trisquel 7.0 LTS Belenos 64비트에서 다음 오류가 발생합니다.

/usr/local/lvm/gcc-5.2.0/libexec/gcc/x86_64-unknown-linux-gnu/5.2.0/cc1plus: error while loading shared libraries: libisl.so.13: cannot open shared object file: No such file or directory

나는 가서 /usr/local/lvm/gcc-5.2.0/libexec/gcc/x86_64-unknown-linux-gnu/5.2.0/cc1plus하나를 수행했고 ldd결과는 다음과 같습니다.

cc1plus:
    linux-vdso.so.1 =>  (0x00007fffc5df8000)
    libisl.so.13 => not found
    libmpc.so.3 => /usr/lib/x86_64-linux-gnu/libmpc.so.3 (0x00007f1ec32fb000)
    libmpfr.so.4 => /usr/lib/x86_64-linux-gnu/libmpfr.so.4 (0x00007f1ec309f000)
    libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f1ec2e2b000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1ec2c26000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1ec2920000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1ec255b000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f1ec352d000)

그래서 들어가서 확인해 /usr/local/lvm/isl-0.14/lib보니 다음과 같습니다.

total 4912
-rw-r--r-- 1 root root 3263234 août  11 14:38 libisl.a
-rwxr-xr-x 1 root root    1000 août  11 14:38 libisl.la
lrwxrwxrwx 1 root root      16 août  11 14:38 libisl.so -> libisl.so.13.1.0
lrwxrwxrwx 1 root root      16 août  11 14:38 libisl.so.13 -> libisl.so.13.1.0
-rwxr-xr-x 1 root root 1750046 août  11 14:38 libisl.so.13.1.0
-rw-r--r-- 1 root root    3939 août  11 14:38 libisl.so.13.1.0-gdb.py
drwxr-xr-x 2 root root    4096 août  11 14:38 pkgconfig

이해가 안 돼요: libisl.so.13은 libisl.so.13.1.0을 가리키며, 이는 libisl.so.13.1.0이 가리키는 심볼릭 링크와 동일한 디렉터리에 있습니다.

Ubuntu 15.04 64비트 또는 Mac OS에서 Trisquel에서는 그렇지 않은 것 같습니다... 문제가 무엇인가요?

관련 정보