같은 소스 코드를 빌드하면 같은 툴 체인 (동일한 컴파일러, 링커 등, GCC 4.4)을 사용하여 동일한 라이브러리의 동일한 버전으로 링크하고 동일한 운영 체제의 동일한 버전 (CentOS 5 Linux 내 경우에는)하지만 두 개의 다른 기계;두 개의 동일한 플랫폼에 두 개의 공유 라이브러리가 구축 될 것으로 기대하는 것이 합리적입니까?
생성 된 바이너리가 동일해야한다고 생각하는 것이 합리적입니까?
이 컨텍스트는 내 코드가 하나의 구성에서는 작동하지만 다른 것은 작동하지 않는 명백한 대답은이를 수정하는 것이지만 바이너리 생성에 대한 내 가정이 동일하다는 것은 정확하다.
크기가 수백 바이트 차이가 나는데, 'nm'명령으로 표시된 심볼의 위치는 기호가 동일하더라도 약간 다릅니다.
공유 라이브러리가 동일하게 사용하는 다른 모든 구성 요소도 있습니다 (예 : 가장 명확한 구성 요소는 glibc입니까? –
같은 방법으로 같은 시간대에 동일한 소스 코드를 작성하면 결과는 동일합니까? – aschepler
짧은 답변은 "모든 것이 정확히 동일하면"동일한 결과를 얻는 것입니다 ([날짜]와 [빌드 번호] 및 '컴파일시 제공되는 유사한 정보'가 바이너리에 포함되는 것과는 별개로) -하지만 그 정보 자체에만 영향을 미쳐야합니다.] –