- 论坛徽章:
- 0
|
大家注意到没有?gnu的c++编译器编成的文件怎么很大呀?
刚才在一个BSD上测了一下,FreeBSD 4.7 mini版,干净的系统,cc、g++都是系统自带的2.95版。
test.cpp
- #include <stdio.h>;
- main()
- {
- }
复制代码
由于没有联网,不太好把结果粘上来,观察了一下,和上面的结果基本是一样的,不过有意思的是,用g++编译的程序用到了/usr/lib/libstdc++.so,如果把这个动态库改个目录,重新用g++编译以后生成的文件就不再用libstdc++.so,并且变得小了一些!但是比用cc编译出来的仍然大了一点。
这和预期的结果是不同的,本以为把libstdc++.so藏起来以后会静态链接libstdc++.a,但看起来。。。这个到底有没有静态链接libstdc++.a呢?上面这个测试程序太简单了,无法说明问题。
至于libc.so,改了名字以后cc或g++根本无法工作,无从测起,可能得另想办法。。。
大家谁要试这个的话最好在FreeBSD里试,并非因为偶偏好BSD,而是因为在FreeBSD里/bin里的重要命令如ls和mv是静态链接的,不需要用到任何共享库 |
|