리눅스 앱을 빌드, 실행하는 컴퓨터에서 /lib64/libc.so.6: version GLIBC_2.34' not found 오류
페이지 정보
작성자
DocsArchives
작성일
2025.09.06 01:45
본문
이 오류는 빌드한 환경의 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