formulous

주니어 개발자의 개발 지식 공유 블로그입니다.

Difficulties

[nestjs] version `CXXABI_1.3.9' not found 에러 대처 방법

formulous 2022. 12. 5. 13:13

 

 

안녕하세요.

 

지난 업무 중에 nestjs에서 sqlite3 모듈을 설치 후 사용했을 때 발생한 에러에 대해 얘기해보고자 합니다.

 

OSError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /lib64/libpcre_parser.so)

 

해당 에러는 gcc 컴파일러의 버전이 낮아서 발생하는 것으로, gcc 컴파일러의 버전을 업그레이드시켜줌으로써

해결하게 되었습니다. (해당 에러를 해결하는데 있어서 python3.x 버전 역시 필요했습니다.)

 

저를 10시간이 넘게 고생시켰던 에러 치고는 해결 방법이 사실 간단합니다. (삽질의 연속..)

 

 

아래와 같은 순서로 천천히 따라와주시면 되겠습니다.

 

일단 python 3.x 버전을 설치해줍니다.

 

저는 리눅스 환경에서 설치를 했기에 yum 기준으로만 설명드리겠습니다. (다들 python3 설치는 할 줄 아시는 걸로..)

 

yum install -y python3

python3 --version

 

해당 명령어를 순서대로 입력해 python3.x 버전을 설치하고 설치된 버전을 확인해줍니다.

 

python3 --version 명령어를 입력했을 때 3.x.x 버전 정보가 나온다면 성공입니다.

 

두 번째로 해당 링크로 가셔서 gcc 7.1.0 버전 이상의 tar.gz 파일을 설치해줍니다.

 

그 이후 저는 다운로드한 tar.gz 파일을 root 경로로 옮겨준 상태에서 하기 순서대로 진행했습니다.

 

1. mkdir gcc-7.1.0-build 

2. tar xf gcc-7.1.0.tar.gz 

3. cd gcc-7.1.0-build 

4. ../gcc-7.1.0/configure --enable-languages=c,c++ --disable-multilib

5. make -j 10 && make install

6. unlink /lib64/libstdc++.so.6

7. ln -s /usr/local/lib64/libstdc++.so.6.0.23 /lib64/libstdc++.so.6

 

1번부터 살펴볼까요?

 

1. mkdir gcc-7.1.0-build

gcc 컴파일러를 빌드해 줄 디렉터리를 생성합니다.

 

2. tar xf gcc-7.1.0.tar.gz

다운로드한 gcc 압축 파일을 풀어줍니다.

 

3. cd gcc-7.1.0-build

빌드 디렉터리로 이동합니다.

 

4. ../gcc-7.1.0/configure --enable-languages=c,c++ --disable-multilib

gcc 컴파일러 환경 설정입니다 그대로 해주세요..! (저도 잘 모름)

 

5. make -j 10 && make install

gcc 컴파일러 실행 환경 make 파일을 만들고 해당 make 파일을 install 하는 명령어입니다.

터미널에 무서운 속도로 무언가 출력되지만 겁먹을 필요 없습니다. (30분~1시간 정도 소요됩니다)

 

6. unlink /lib64/libstdc++.so.6

기존 사용하던 gcc 컴파일러 환경과 연결을 해제합니다.

 

7. ln -s /usr/local/lib64/libstdc++.so.6.0.23 /lib64/libstdc++.so.6

다운로드 한 7.1.0 버전의 gcc 컴파일러 환경과 연결합니다.

 

해당 순서로 진행하고 나서  아래 명령어를 입력해 줍니다.

 

$ strings /usr/local/lib64/libstdc++.so.6 | grep CXXABI

 

명령어를 입력했을 때 아래 이미지와 같이 CXXABI 버전이 올바르게 설정된 게 확인되었다면 성공!!

이렇게 필요한 CXXABI 버전이 설정된 gcc 컴파일러 버전을 설치하게 되면 해당 에러가 사라지는 것을 볼 수 있습니다.

 

오늘도 즐거운 개발되시길 바랍니다~

 

감사합니다.