У меня довольно простой проект на С++, который использует библиотеку boost:: regex. Выход, который я получаю, составляет 3,5 МБ. Насколько я понимаю, я статически связываю все файлы с усилением .CPP, включая все функции/методы. Может быть, возможно каким-то образом поручить моему компоновщику использовать только необходимые элементы из boost, а не все из них? Спасибо.
$ c++ —version
i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5659)
Вот что говорит size
:
$ size a.out
__TEXT __DATA __OBJC others dec hex
1556480 69632 0 4296504912 4298131024 100304650
Я попробовал strip
:
$ ls -al
... 3946688 May 21 13:20 a.out
$ strip a.out
$ ls -al
... 3847248 May 21 13:20 a.out
пс. Так организован мой код (возможно, это основная причина проблемы):
// file MyClass.h
class MyClass {
void f();
};
#include "MyClassImpl.h"
// file MyClassImpl.h
void MyClass::f() {
// implementation...
}
// file main.cpp
#include "MyClass.h"
int main(int ac, char** av) {
MyClass c;
c.f();
}
Как вы думаете?