【发布时间】:2014-03-01 15:38:13
【问题描述】:
我得到了一个巨大的 Microsoft Visual C++ 2003 项目,该项目生成一个可执行文件 (.exe),该项目本身依赖于几个 DLL。我注意到,即使代码设法编译,当它运行时,它也会查找它所依赖的 DLL(比如我的程序称为 abc,它所依赖的 DLL 称为 def.dll),即使我添加了要包含在项目设置中的路径,它会抱怨说找不到 DLL,除非我将包含 def.dll 的文件夹添加到 %PATH% 变量中。
因此,最终产品不是一个 exe,而是一个带有大量 DLL 的 exe。
是否可以将所有内容编译成一个 .exe 文件,这样我就可以随身携带这个可执行文件,它可以在我拥有的每一台 PC 上运行?该项目本身非常庞大,因此我不打算更改每个 .h 和 .cpp 文件,但如果在可视化 C++ 中有快速设置更改,我认为会很好。我知道 .exe 可能会大 10 倍,编译它可能需要几个小时,但我认为可移植性在这里相当重要。
谢谢!
PS:不知道为什么人们对这篇文章投了反对票……我可以不再在 StackOverflow 上提出合理的问题吗?我知道这个问题对你们中的一些人来说可能听起来微不足道,但我真的只是为了说明而简化了这个问题。
【问题讨论】:
-
把所有的 DLL 和可执行文件放在同一个目录下,作业就完成了。
-
@DavidHeffernan 除了 DLL 位于属于不同依赖程序的不同文件夹中之外,我为了说明而简化了这个问题
-
不过,将副本放在可执行目录中是公认的解决方案
标签: c++ visual-studio visual-c++ dll