Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 为什么有些dll静态链接存根库(导入库)如此之大?_Visual Studio_Dll_Stub_Import Libraries - Fatal编程技术网

Visual studio 为什么有些dll静态链接存根库(导入库)如此之大?

Visual studio 为什么有些dll静态链接存根库(导入库)如此之大?,visual-studio,dll,stub,import-libraries,Visual Studio,Dll,Stub,Import Libraries,我在链接到pcl(点云库)时注意到,一些dll存根库的大小超过10MB,而dll本身的大小不到该大小的一半(这些是发布版本!)。存根库不应该只包含最小的信息,以便可以访问dll信息吗?它怎么可能比它们引用的dll文件大 与我相关的是,通过链接到大存根库,我自己的可执行文件的大小也在大幅增长;这是我想通过使用DLL来防止的 VS中是否有更改dll链接器行为的设置,以便它将更多或更少的内容放入存根库?“存根库”不是常用术语,您是指“导入库”吗?它们很小,比DLL小得多。听起来你实际上是在链接静态库。

我在链接到pcl(点云库)时注意到,一些dll存根库的大小超过10MB,而dll本身的大小不到该大小的一半(这些是发布版本!)。存根库不应该只包含最小的信息,以便可以访问dll信息吗?它怎么可能比它们引用的dll文件大

与我相关的是,通过链接到大存根库,我自己的可执行文件的大小也在大幅增长;这是我想通过使用DLL来防止的


VS中是否有更改dll链接器行为的设置,以便它将更多或更少的内容放入存根库?

“存根库”不是常用术语,您是指“导入库”吗?它们很小,比DLL小得多。听起来你实际上是在链接静态库。一个DLL大小的两倍是正确的。快速检查的方法是在您的exe上运行dumpbin.exe/imports,检查您是否确实对DLL有依赖关系。是的,我是说导入库,对不起(更改了标题)。大多数时候它们确实很小,但并不总是如此。这正是我发布这个问题的原因。为什么一些进口LIB如此之大?我已经构建了dll,生成的自我和库肯定只是导入库(Linker/Advanced/import Library,Configuration Type=dll),没有静态库。当然,我检查了dumpbin.exe/imports的输出,它将DLL显示为导入。嗯,我不知道,从这里看不到它。将.lib复制到文件共享服务中,以便我们可以查看它;预构建的二进制文件(Windows)和(至少对我来说)从sourceNo生成的二进制文件,我发现这种行为仍然令人困惑。