-
23-08-2019 - |
문제
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가 포함되지 않습니다.
comp.compilers 중재자에서.
제휴하지 않습니다 StackOverflow