Loading...

운영체제

리눅스 앱을 빌드, 실행하는 컴퓨터에서 /lib64/libc.so.6: version GLIBC_2.34' not found 오류

페이지 정보

작성자 DocsArchives
작성일 2025.09.06 01:45
분류 rhel
743 조회

본문

이 오류는 빌드한 환경의 glibc 버전이 실행할 환경보다 신버전이기 때문에 발생합니다. 즉, 실행 머신의 glibc가 2.34 미만인데, 컴파일러가 2.34 이상의 심볼을 링크해버린상태.


결 방법 (현실적으로 가능한 선택지)

1. 하위 버전 glibc 환경에서 빌드

  • 가장 확실한 방법은 실행할 서버와 동일하거나 더 낮은 리눅스 배포판에서 Lazarus/FPC를 설치하고 빌드하는 것입니다.
    예) 실행 서버가 CentOS 7(glibc 2.17)이면 CentOS 7 Docker 컨테이너에서 빌드.


2. musl libc 사용 (glibc 의존도 제거)

  • Free Pascal은 glibc 대신 musl을 이용해서 빌드 가능.

  • musl-gcc를 설치한 후 fpc.cfg에 cross-binutils 지정.

  • 이렇게 빌드하면 glibc 버전 문제 없이 더 이식성 높은 실행 파일을 얻을 수 있습니다.

3. Static linking (정적 링크)

  • 일부 경우 -static 옵션을 사용해서 glibc를 정적으로 링크할 수 있지만, glibc는 완전 정적링크를 권장하지 않습니다(문제 생길 수 있음).

  • 대신 musl libc 정적 링크가 안전합니다.

4. fpc 옵션에서 libc 버전 낮추기 → 불가능

  • FPC 자체에는 glibc 버전을 낮추는 옵션은 없습니다.

  • 이유: glibc 심볼을 선택하는 것은 링커와 시스템의 libc에 의존하기 때문입니다.

  • 즉, "컴파일러 옵션으로 glibc 버전 낮춤"은 할 수 없고, 반드시 낮은 glibc 환경에서 빌드해야 합니다.



glibc는 일반적으로 하위 호환성(backward compatibility) 을 유지합니다.
즉, 옛날에 빌드된 프로그램은 새 glibc에서 잘 돌아가는 경우가 많습니다.
 
댓글 0
홈으로 전체메뉴
전체 검색
회원가입