문제

Python LISP 컴파일러와 일부 C 링커 소스 에서이 용어를 보았습니다.

내 생각에 고정 업은 조립 루틴 주변의 래퍼 일 뿐이며 정렬이 옳은지 확인하지만 여기에 대해 전혀 확실하지 않습니다.

도움이 되었습니까?

해결책

"Fixup"은 링커 용어입니다. 여기에는 꽤 좋은 토론이 있습니다.

http://www.microsoft.com/msj/0797/hood0797.aspx

객체 파일 (.o, .obj)이 외부 기호를 말할 때마다 "주소 0 Put Ton register 5"와 같은 자리 표시 자 코드와 "실제 'foo'의 실제 주소로 0을 채우는 것"과 같은 자리 표시 자 코드를 출력합니다. . 다른 객체 파일은 'foo'를 정의하고 링커는 돌아가서 0을 올바른 주소로 "고정"합니다.

또한 아무도 'foo'를 정의하지 않으면 '_foo에 대한 참조를 찾을 수 없음'또는 C ++를 사용하는 경우 더 이해하기 어려운 Retro 50의 스타일 오류 메시지를 얻습니다.

그리고 'foo'의 주소가 링커를 넣고 싶은 곳에 맞지 않으면 "Fixup 오류"를 얻지 못할 것입니다. 일반적으로 이것은 너무 큰 상대 오프셋이 필요한 고정 장치에서 비롯됩니다.

다른 팁

링커와 로더는 많은 전문 용어를 설명하는 흥미로운 잉커 리소스이며 여기 저기 X86 CPU가 포함되지 않습니다.

http://www.iecc.com/linker/

comp.compilers 중재자에서.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top