我自己要写一个dll,它用到了几个lib库。这些lib是开源的,里面只有一部分代码是我需要的。当我修改这些lib的源文件,删除了一些冗余代码后,再次编译dll(使用新生成的lib),dll变小。请问静态链接不是只将用到的代码链接到dll或可执行程序中么,那么我的dll为什么会变小呢?

解决方案 »

  1.   

    你都删代码了,DLL为什么不变小呢?变大的话才是问题啊
      

  2.   

    静态链接是把可执行代码()连接起来,”但再次编译dll(使用新生成的lib),“这个dll lib里并没有代码!
    “当我修改这些lib的源文件,删除了一些冗余代码后,再次编译”不能为dll,必须编译为静态库(即有执行代码)才行
      

  3.   

    你没有理解我的意思。这里的dll先认为他是exe吧(意义一样),就是我写一个可执行程序,代码中用到一些lib,我有这些lib的开源代码,我删除其中一部分不用的代码,重新编译生成新的lib,再用新的lib编写我的可执行程序,为什么可执行程序变小了呢?静态连接不是只将有用的代码链接进去了吗?lib中即使有多余的代码不是也不会链接到程序中吗?