gpt4 book ai didi

c++ - 从 Windows 二进制文件中删除 msvcp90d.dll 依赖项

转载 作者:可可西里 更新时间:2023-11-01 11:09:33 25 4
gpt4 key购买 nike

我有一个我分发的 dll,它不能在某些 Windows 操作系统上运行。使用 dependancy walker 我发现这些系统上缺少 msvcp90d.dll。我想要任何需要 C++ 可再发行组件的运行时依赖项,并且由于调用 DLL 的应用程序不是用 C++ 编写的,因此它对 C++ 可再发行组件没有任何依赖性。

我猜我在编译 dll 时在链接器首选项中留下了 DEBUG 选项,这就是它需要 msvcp90d.dll 的原因?

添加:抱歉,我在原来的问题中粘贴了错误的 dll 名称……在显示器前的时间太长了……

这个dll是我在VS2008编译的第三方dll,不是我写的。

最佳答案

MSVCP90 与调试无关(即 msvcp90d)。您可以通过将编译器切换到/MT(而不是/MD)来删除依赖项。您还需要确保链接到的每个静态库也已编译/MT。

我建议不要构建应用程序/MT,因为它会对系统性能产生显着的负面影响,并且在 CRT 出现安全问题时会使服务时间更长。

最后,请注意/MT 表示您的 CRT 是私有(private)的。因此,您必须确保 CRT/STL 类型不会跨越您的 DLL 边界。

马丁

关于c++ - 从 Windows 二进制文件中删除 msvcp90d.dll 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6738472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com