静态链接与动态链接的区别 与 动态库与静态库的区别

来源:互联网 发布:电视台曝光网络黄金egd 编辑:程序博客网 时间:2024/06/06 20:56

 1.静态链接与动链接的区别

        在C语言中,我们知道要生成可执行文件,必须经历两个阶段,即编译、链接。

        在编译过程中,只有编译,不会涉及到链接。

           在链接过程中,静态链接和动态链接就出现了区别。静态链接的过程就已经把要链接的内容已经链接到了生成的可执行文件中,就算你在去把静态库删除也不会影响可执行程序的执行;而动态链接这个过程却没有把内容链接进去,而是在执行的过程中,再去找要链接的内容,生成的可执行文件中并没有要链接阿的内容,所以当你删除动态库时,可执行程序就不能运行。

           所以总的来说,动态链接生成的可执行文件要比静态链接生成的文件要小一些。

2.动态库与静态库的区别

       2.1就不设置环境变量的情况下来说

       动态库一般都会存在/usr/lib/ 目录下;而静态库可以在任何目录下,只要你第一次链接的时候,用绝对路径去链接就行了,之后再删除,是不会影响你的生成的执行文件的。

            2.2如若可以设置环境变量的话

            动态库和静态库可以放置到你想放的任何地方,只是动态库需要设置环境变量,而静态库链接的时候需要绝对路径。

            但一般来说,动态库都会放在放在/usr/lib,应该大家都习惯了,这样也方便寻找,而当链接动态库的时候默认的路径就是/usr/lib。



0 0
原创粉丝点击