Linux下静态编译好处很多,一来是可以跨发行版(debian RedHat gentoo),跨版本,跨架构(x86 x64)运行程序,可以联想到一些邪恶的东西;二来是可以避免动态库被修改影响程序输出,后门检测工具一般最好可以静态编译。
在Linux里静态编译一些东西的时候,ld会报找不到libgcc_s,但是我们发现/usr/lib/下有libgcc_s.so,搞了半天,最后用strace发现Y去找libgcc_s.a了。但是libgcc_s这玩意是在gcc里的,我把gcc代码抓回来一看,makefile太复杂了,赶紧放弃。立马放狗狂搜,发现可以用lingcc.a代替libgcc_s.a,做了个ln解决问题了。
另外在debian下做静态包还是相对方便的,apt-get source ooxx命令用起来相当爽,免去了找代码的麻烦。