2017-04-15 1 views
0

C++ 및 STL 라이브러리를 사용하여 임베디드 시스템을 프로그래밍하고 있습니다. 메모리가 부족함에 따라 일부 메모리 덤프를 수행하여 메모리가 모두 손실 된 곳을 확인했습니다. 심볼 덤프 (arm-none-eabi-objdump -t)에서 libstdcC++ 라이브러리에서 많은 항목을 발견했습니다. 예를 들어 moneypunct 클래스의 348 개 항목이 있으며이 클래스를 사용한 적이 없으며 텍스트 출력도 없으므로 현지화 또는 텍스트 서식 지정 클래스가 필요하지 않습니다. STL 라이브러리에서 해당 항목을 모두 스틱 할 수 있습니까?ARM GCC가 포함 된 C++, 불필요한 STL 함수 제거

컴파일러는 GNU 팔 그래서 예를 들면 내장 된 GCC (ARM Embedde 프로세서 용 GNU 도구 6-2017-Q1-업데이트 버전의 gcc 6.3.1)

는 이미 표준 암 GCC의 최적화를 사용한다 -Wl,--gcc-sections, --specs=nano.sepcs, 기능 및 데이터 섹션

확인

답변

0

그냥

또한 내가 어떤 스트림을 사용하지 않은, 그것을 해결의 iostream 라이브러리는 오버 헤드가 많이 포함되어 있습니다. 플래시

의 저장되어있는 모든

#include <iostream> 

을 포함 제거 120kbyte

관련 문제