내 실행 파일의 크기를 심각하게 최적화 ( ARM
개발)해야하는데 현재 빌드 체계 ( gcc
+ ld
)에서 사용하지 않는 기호가 제거되지 않는다는 것을 알았습니다 .
arm-strip --strip-unneeded
결과 실행 파일 / 라이브러리에 대한 의 사용은 실행 파일의 출력 크기를 변경하지 않습니다 (이유를 모르겠습니다 . 단순히 불가능할 수도 있습니다) .
건물 파이프 라인을 수정하여 결과 파일에서 사용되지 않는 기호를 제거 하는 방법 (존재하는 경우) 은 무엇입니까?
난이 생각하지,하지만 내 현재 임베디드 환경은 매우 "강력한"심지어는 저장되지 않습니다 500K
밖으로의 2M
아주 좋은로드 성능 향상의 결과.
최신 정보:
불행하게도 현재 gcc
버전 I의 사용은하지 않는 -dead-strip
옵션과 -ffunction-sections... + --gc-sections
에 대한 ld
결과 출력을위한 의미있는 차이를 제공하지 않습니다.
gcc + ld
사용하지 않는 기호를 자동으로 제거해야한다고 확신했기 때문에 이것이 문제가되었다는 사실에 충격을 받았습니다 (왜 유지해야합니까?).
boost
라이브러리 를 사용하는 일부 기존 응용 프로그램을 포팅하려고 하면 결과 .exe
파일에 사용되지 않은 개체 파일이 많이 포함되어 있고 현재 임베디드 런타임 사양으로 인해 , 10mb
응용 프로그램을 시작하는 것은 응용 프로그램을 시작하는 것보다 훨씬 오래 걸립니다 500k
.