相关疑难解决方法(0)

为什么我的C++输出可执行文件如此之大?

我有一个相当简单的C++项目,它使用boost :: regex库.我得到的输出是3.5Mb.据我所知,我静态链接所有boost .CPP文件,包括所有函数/方法.也许有可能以某种方式指示我的链接器只使用boost中的必要元素,而不是所有元素?谢谢.

$ c++ —version
i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5659)
Run Code Online (Sandbox Code Playgroud)

size就是说:

$ size a.out
__TEXT  __DATA  __OBJC  others  dec hex
1556480 69632   0   4296504912  4298131024  100304650
Run Code Online (Sandbox Code Playgroud)

我试过了strip:

$ ls -al
...  3946688 May 21 13:20 a.out
$ strip a.out
$ ls -al
...  3847248 May 21 13:20 a.out
Run Code Online (Sandbox Code Playgroud)

PS.这就是我的代码组织方式(也许这是问题的主要原因):

// file MyClass.h
class MyClass {
  void f();
};
#include "MyClassImpl.h"

// file MyClassImpl.h
void MyClass::f() {
  // implementation...
}

// file main.cpp …
Run Code Online (Sandbox Code Playgroud)

c++ boost

14
推荐指数
2
解决办法
1万
查看次数

标签 统计

boost ×1

c++ ×1