静态编译就是在编译时把所有模块都编译进可执行文件里去,当启动这个可执行文件时,所有模块都已被加载进来。

    动态编译则是将应用程序需要的模块编译成动态链接库dll,启动程序时,这些模块不会被加载,运行时用到哪个模块就调用哪个DLL文件。

    静态链接库编译相当于带着一个工具包到处跑,遇到有需要的地方不需要周围环境提供相应的工具,用自己工具包的工具就行了,不受环境影响。
    而动态编译库编译相当于不带任何工具,因此会受环境影响。
    这两者的区别显然就是前者“重量”增加了,即程序的体积会比后者打

    故,是用“静态编译”还是“动态编译”,关键看自己的需要。对于初学者而言,涉及的工程可能都比较小,不妨考虑采用“静态编译”,也方便把程序移植到其他计算机上运行