매우 큰 오브젝트 파일을 생성하는 데 문제가 있습니다. 우리는 VxWorks 5.5.1을 사용하고 있지만 GCC 4.1.2를 사용할 수 있습니다.VxWorks 5.5.1 용으로 컴파일 할 때 오브젝트 파일 크기를 줄이는 방법은 무엇입니까?
우리 모듈의 크기는 대략 6.2MB이며이를 줄이기위한 방법을 모색 중입니다. 이 문제는 주로 템플릿을 과도하게 사용하여 발생합니다. nm
을 사용하여 파일에 심볼을 덤프 할 때 텍스트 파일은 1.8MB입니다. 이것은 파일의 거의 1/3이 이름 일 뿐이라는 것을 나에게 알립니다. 파일 크기를 줄이는 방법이 있습니까?
다음 방법
이 일을하지 않은 :--strip-all
아무런 영향이없는 것으로 보인다 - 출력이 동일 가
- 내가
--gc-sections
를 사용할 수 없습니다--strip-debug
를 사용하여, 그것은 그 플랫폼 지원되지 않기 때문에합니다 (옵션은 간단히 무시 됨)
VxWorks는로드시 코드를 링크하지만 링크해야하는 것은 모두 C++ 런타임 라이브러리이므로 어떤 기호도 추가되지 않도록합니다. 전역 심볼 테이블에, 그래서 그 정보를 제거하는 방법이 있어야합니다, 맞죠?
i386-wrs-vxworks-ld.exe --version
>>> GNU ld (Wind River VxWorks G++ DWARF-EH 4.1-131) 2.17.50.20070509
>>> SPR fixes: cq103489 cq111170 cq116027 cq116652 cq118878 cq125145
내 컴파일러 버전 :
는 참고로, 여기 내 링커 버전입니다
i386-wrs-vxworks-g++.exe --version
>>> i386-wrs-vxworks-g++.exe (GCC) 4.1.2
'-Os' 최적화 플래그를 사용 하시겠습니까? –
죄송합니다. 이미이 작업을 수행했음을 언급 했어야합니다. 출력 크기를 8.5MB에서 6.2MB로 줄였습니다. –