【发布时间】:2012-03-22 23:32:58
【问题描述】:
我在 Visual Studio 2010 中有一个非托管 C++ 项目。它使用 boost、glut 和来自供应商的另一个库。
我已经设置项目以创建一个更“独立于 dll”的可执行文件。所有的boost库都是静态链接的,可执行文件所在的目录不需要dll。
对于 Glut 也是如此,我已经链接了静态 glut32.lib 而不是 glut32.dll,同样没有问题。
我为运行时库选择了非 dll 版本,即多线程调试(用于调试配置)和多线程用于发布配置。
现在,我之前所说的供应商提供了两个替代方案,一个 Vendor.lib 和一个 Vendor.dll。
Vendor.lib 被添加到 Linker->Additional dependencies 但在运行时我总是必须将 Vendor.dll 放在可执行文件的同一目录中,否则运行时环境会因为找不到 Vendor 而报错。 dll 库。
我应该如何解决这个问题?我想避免将 .dll 文件放在每个目录中。
我不想将 dll 放在 exe 的同一目录中,一般来说,在 Visual Studio 中部署非托管 c++ 控制台应用程序的准则是什么?
我知道关于这个论点有很多问题和页面,但没有一个能澄清我这一点。
有什么想法吗?
【问题讨论】:
标签: c++ visual-studio-2010 visual-c++ deployment static-linking