【发布时间】:2010-07-13 21:14:09
【问题描述】:
当链接一个可执行文件时,如果它没有引用链接行上某个 DLL 中的任何符号,它在运行时是否仍依赖于该 DLL?
为了使问题具体化,假设我正在从 Visual Studio 项目 foo 构建一个应用程序。
在项目属性>链接器>输入>附加依赖项下我指定了bar.lib,bar.dll的导入库,即使不需要成功链接foo.exe。
由于我已将bar.dll 标记为链接依赖项,我还需要将其与我的应用程序一起分发吗?
【问题讨论】:
-
如果链接器正常工作,那么它应该忽略未引用的 dll。有一个简单的方法来测试这个,创建这样一个项目,然后看看它是否运行如果你删除
bar.dll。 -
或使用dependency walker (dependencywalker.com) 来查看您的应用程序是否列出了该DLL。
标签: c++ windows visual-studio dll linker