静态连接就是把外部函数库,拷贝到可执行文件中。
优点:适用范围比较广,不用担心用户机器缺少某个库文件;
缺点:安装包会比较大,而且多个应用程序之间,无法共享库文件。
动态连接的做法正好相反,外部函数库不进入安装包,只在运行时动态引用。
优点:安装包会比较小,多个应用程序可以共享库文件;
缺点:用户必须事先安装好库文件,而且版本和安装位置都必须符合要求,否则就不能正常运行。
现实中,大部分软件采用动态连接,共享库文件。这种动态共享的库文件,Linux平台是后缀名为.so的文件,Windows平台是.dll文件,Mac平台是.dylib文件。