如何uglify或缩小C代码

时间:2015-06-12 05:38:19

标签: c gcc minify

使用gcc我可以删除评论和不需要的空白行,但我也希望缩小文件大小,gcc或其他任何工具都可以选择

目前我喜欢这个

gcc -fpreprocessed -dD -E  -P source_code.c > source_code_comments_removed.c 

这个场景假设这是我的source_code.c

#include <stdio.h>
main()
{ 
      // declar variable i
      int i=0;

      /* multiline comment
      for loop
      demo stuff
      */
      for(i=1; i<=5; i++)
      {
            // just print something
            printf("Hello %d \n",i);
      }

}

我想像这样缩小,删除评论和空白行

#include <stdio.h>
main(){int i=0;for(i=1; i<=5; i++){printf("Hello %d \n",i);}}

注意:我在 Linux 请不要建议任何基于Windows的解决方案

1 个答案:

答案 0 :(得分:11)

sed -rb 's/ {6}//g' main.c |
sed -rb 's/\/\/.*$//g' |
tr -d '\n' |
sed -rb 's/\/\*.*\*\///g' |
sed -rb 's/(#include.*>)/\1\n/g'

会给你:

#include <stdio.h>
main(){int i=0;for(i=1; i<=5; i++){printf("Hello %d \n",i);}}

然而,正如评论中所述,这没有多大意义,不会减小编译对象文件的大小