programing

crt0.o와 crt1.o -- 무엇이 다릅니까?

telebox 2023. 6. 26. 21:15
반응형

crt0.o와 crt1.o -- 무엇이 다릅니까?

최근에 낮은 수준의 작업을 디버깅하려고 했지만 찾을 수 없었습니다.crt0.S컴파일러(avr-gcc)를 위해 그러나 나는 발견했습니다.crt1.S(및 해당하는 것도 마찬가지입니다..o파일).

이 두 파일의 차이점은 무엇입니까?아이즈crt1완전히 다른 것이나 무엇인가?둘 다 '부트스트랩'(설정)과 관련이 있는 것 같습니다.stack frame등), 하지만 왜 그 차이가 있습니까?

crt0/crt1은 모두 동일한 작업을 수행하며 기본적으로 main()을 호출하기 전에 필요한 작업을 수행합니다(예: 스택 초기화, irqs 설정 등).둘 중 하나 또는 다른 하나와 연결해야 하지만 둘 다 연결해서는 안 됩니다.그것들은 실제 라이브러리가 아니라 실제로 인라인 어셈블리 코드입니다.

제가 알기로는 crt는 두 가지 "맛"이 있습니다.

  • crt1은 생성자 및 소멸자를 지원하는 시스템에서 사용됩니다(주 및 종료 전후에 호출됨).이 경우 메인은 일반 함수 호출처럼 처리됩니다.
  • crt0은 생성자/파괴자를 지원하지 않는 시스템에서 사용됩니다.

언급URL : https://stackoverflow.com/questions/2709998/crt0-o-and-crt1-o-whats-the-difference

반응형