2016-06-10 4 views
2

STL, 부스트 및 다른 여러 라이브러리를 사용하는 C++ Windows 응용 프로그램이 있습니다. 응용 프로그램을 많이하지 않지만 큰 크기가 있습니다. 앱의 크기를 줄이는 방법을 찾아야하지만,이 라이브러리의 어느 부분이 내 앱의 크기를 날려 버리는 지 이해할 수 없습니다.내 응용 프로그램의 크기를 날려 버리는 코드를 찾는 방법은 무엇입니까?

(어쩌면 나는 등, STL/부스트를 전환하거나 자신에 의해 떨어지게을 구현하거나 다른 방법으로 떨어지게 할 수 있습니다 ...)

우리가 어떤 도구가 있습니까/수입 문자를 조사하고 알아 안내 앱의 크기가 가장 커지는가?

업데이트

릴리스 빌드에 대해 묻습니다.

컴파일러 구성에 대해서는 묻지 않지만 내 코드의 어떤 부분이 내 응용 프로그램의 크기가 가장 커 졌는지 알려주는 도구에 대해 묻습니다.

모든 libs가 정적으로 포함됩니다. 따라서 앱의 중량 의존성을 제거 할 수 있다면 앱의 크기가 현저하게 줄어들 것입니다.

+2

이,'nm'가 유용한 도구입니다 https://en.wikipedia.org/wiki/Nm_(Unix) –

+0

@ChrisBeck 고맙습니다. 나는 윈도우즈 용으로 마음에 들지 않는다면'nm'을 시도 할 것입니다 ... –

+0

부스트가 클 수도 있습니다 : http://stackoverflow.com/questions/2839172/why-my-c-output-executable-is-so-so- 큰 – Drakosha

답변

-1

디버그 빌드를보고 계십니까? 그것은 더 클 수도 있습니다. 실행 파일에서 strip을 수행하는 것은 어떻습니까?

+0

아니요, 릴리스 빌드에 대해 묻습니다. –

+0

스트립은 어떨까요? http : // stackoverflow.co.kr/questions/1540523/strip-executable? – Drakosha

+2

'Strip'은 디버깅 목적으로 사용되는 심볼 정보를 제거합니다. Windows (VS2015)에서 릴리스 빌드에 배치되지 않은 디버깅 정보. –

1

부스트는 큰 라이브러리입니다. Boost가 필요한 경우 STL이 필요하지 않습니다.

STL만으로도 충분하다면 STL 만 사용할 수 있습니다.

또한 Visual Studio에서 연결 프로세스의 출력을 출력하도록 구성 할 수 있다고 생각합니다.

libs와 검사에 대한 몇 가지 아이디어가 여기에 있습니다 :

How to See the Contents of Windows library (*.lib)

유닉스에

Tools for inspecting .lib files?

+0

확인. 예를 들어 boost.thread가 필요합니다. 나는'/ VERBOSE : LIB' 플래그를 사용할 수 있으며,이 lib에 연결된 내 앱을 볼 수 있습니다. 하지만 lib에서 가져온 메서드 목록을 모른다. 그리고 메서드의 크기를 알지 못합니다 ... –

+0

@VictorMezrin stackoverflow에서 도움이되는 링크를 추가했습니다. – sg7

관련 문제