위치 독립적 코드는 생성된 기계어 코드가 작동하기 위해 특정 주소에 있는 것에 의존하지 않는다는 것을 의미합니다. 그리고 점프는 상대적입니다. 그렇다면 Linux 배포판에서
시스템 범위를 선언해도 괜찮습니까 ? -fPIC
특히 일반 인텔 PC?
답변1
우선 PIC는 Linux 배포 문제가 아닌 컴파일러 문제입니다. PIC는 전역적으로 하드코딩하기보다는 컴파일러 플래그로 설정되도록 허용해야 합니다. 모든 시스템 아키텍처가 PIC를 지원하는 것은 아닙니다. 빌드가 정적(비공유)인 경우 PIC가 필요하지 않으며 비효율적일 수 있습니다. 일부 아키텍처/컴파일러에는 서로 다른 동등한 플래그가 있을 수 있습니다. 예를 들어 IBM xl 컴파일러에는 -qpic
플래그가 있습니다. Intel PC 시스템이 필요할 때 특정 패키지에 대한 빌드 파일을 생성하는 경우 이식성이 제한될 수 있습니다.