/usr/bin/ld: 최종 링크 실패: 장치에 남은 공간이 없습니다.오픈 소스 코드 프로젝트를 컴파일하려고 하면 오류가 발생합니다.
내 디스크에 여유 공간이 7GB 정도 있는데 그것이 문제의 원인은 아닌 것 같습니다.
소스 파일이 너무 크면 이와 같은 링커 오류가 발생할 수 있다는 내용을 어딘가에서 읽었습니다. 소스 파일이 너무 크기 때문에 그럴 수도 있습니다. 링커에서 파일 크기로 인해 오류가 발생하는 경우 문제를 해결하기 위해 수행할 수 있는 작업은 무엇입니까?
답변1
링커는 임시 파일을 저장해야 합니다. 추측: 임시 디렉토리가 (보통 /tmp
) 가득 찼습니다. 해결 방법: 다른 임시 디렉토리( )를 정리하거나 /tmp
확장하거나 사용하십시오 ./tmp
export TMPDIR=/path/to/directory/with/
답변2
다음 사항을 확인해 보세요.
- 어떤 파일 시스템이 있습니까? 예를 들어 FAT32는 2GB보다 큰 파일을 허용하지 않습니다.
- 사용 가능한 i-노드가 있습니까?
df -i
블록 크기보다 작은 파일이 여러 개 있을 수 있으며 여유 공간이 있지만 i-노드 목록이 가득 차서 더 이상 파일을 생성할 수 없습니다.
두 경우 모두 더 큰 파일 및/또는 더 많은 inode를 허용하기 위해 새로운 유형의 파티션으로 다시 포맷해야 할 수도 있습니다.