杨庆荣的博客

工作之余接单:公司产品展示网站建设、电商网站建设、小程序、app开发。+86 13714715608

TDM-GCC编译后exe文件太大了,这里有缩小的方法

点击 551    创建时间 2016-07-21 18:09:04

原创文章,免费转载请注明出处。https://wudimei.com/yangqingrong/blog/item/468.html 我在TDM-GCC官网上看到这一段话:

“TDM-GCC still includes DLL versions of the libgcc and libstdc++ runtimes, which you can enable for your program with "-shared-libgcc" and "-shared-libstdc++" if desired.”

意思是说TDM-GCC仍然包含libgcc和libstdc++运行时的DLL版本(默认不使用动态DLL),如果需要,你可以为你的程序启用它,使用"-shared-libgcc" 和"-shared-libstdc++" 参数。

于是我试了一下:

g++ test.cpp -m32 -s -shared-libstdc++ -fno-exceptions -flto -fno-rtti -Os

结果编译后的a.exe只有12kb大小。

参数说明

-s 剪去符号。
-m32 这是输出32位的程序
-shared-libstdc++ 链接c++动态链接库,发布时要带上DLL。如果是gcc就使用"-shared-libgcc"
-fno-exceptions 不要异常

test.cpp内容

 #include  <stdio.h>
#include  <string.h>

using namespace std;  
 class Person{  
 public:  
    int id;  
    void setId(int newId){  
        this->id =newId;  
    }  
    int getId(){  
        return this->id;  
    }  
 };  

 int main(int argc, char **argv)  
 {  
    Person p;  
    p.id=10;  
    p.setId( 1024);  
    printf("hello world! persion id: %d;", p.getId() );  

 }

上一篇: bootstrap overflow-y:hidden造成下拉菜单被隐藏
下一篇: 104: Connection reset by peer