컴파일된 파일에서 crt을 추출할 수 있을까요?
글쓴이: jic5760 / 작성시간: 화, 2017/06/06 - 1:41오후
안녕하세요.
이미 rootfs가 만들어진 임베디드시스템에 새로운 프로그램을 컴파일해 적용하여고 합니다.
해당 시스템의 rootfs에서 추출한 libc라든가 ld라든가 하는 것들을 통해 컴파일을 하면
undefined reference to __libc_csu_fini 이런 오류가 납니다...
아무래도 crt object file이 달라서 그런거 같은데요..
이미 컴파일된 다른 프로그램에서
crt1.o crti.o crtn.o Scrt1.o grt1.o mcrt1.o
이와 같은 파일들을 추출할 수 있는 방법이 있을까요?
Forums:
이미 링크까지 끝나버린 결과물이라서 추출할수 없습니다
이미 링크까지 끝나버린 결과물이라서 추출할수 없습니다.
링크 에러나는 함수는 static libc에 포함된 것으로 보이는데 링커 옵션에서 dynamic libc로 링크 되도록 잘 설정 되어있는지 확인해보셔요.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
답변 감사합니다~
음.. 해결했는데 일단 되긴 되더라구요~
디스어셈블러로 컴파일된 파일을 보면서 필요한 함수들을 찾아 만들어 주고 crt파일을 만들었더니
잘 동작합니다! 물론 몇몇 빠진 함수들은 glibc 소스를 보고 만들었네요~
답변 주셔서 감사합니다!
댓글 달기