0

我对在没有共享库和共享库的情况下如何提供不同大小的闲置相同编程有疑问。?

      example :

      case 1 ( with out using libraries )          

      $ls -l a.out // in this program i didnt use shared libraries .                
      -rwxrwxr-x 1 friend 15555 aug 3 a.out

      $ size a.out 

      text    data bss  dec 
       4000   4555 0    8555 

       case 2 : ( using libraries )           

        $ls -l a.out // in this program used shared libraries .                
      -rwxrwxr-x 1 friend 8000 aug 3 a.out

      $ size a.out 

      text    data bss  dec 
      2000    2888 0    4888

注意:我采用的所有值都是近似值,以显示其在第二种情况下给出的酒渣大小。所以值可能会有所不同,但实际上它会小于 case1。

4

1 回答 1

1

我相信在第一种情况下,链接器将库静态链接到可执行文件中,从而使其更大。然而,这样做的一个好处是,您的程序的用户不需要确保他们有您的程序使用的某些库,因为这些库被打包在您编译的二进制文件中。

在第二种情况下,它使用共享库,因此不必将库打包在可执行文件中。您的程序在启动时会尝试查找库。

于 2013-08-03T18:12:14.957 回答