【问题标题】:VS2010 can never find my DLLsVS2010 永远找不到我的 DLL
【发布时间】:2012-09-23 06:38:14
【问题描述】:

我整天都在尝试让 VS2010 运行我的程序。如果我将它们复制并粘贴到与输出 exe 相同的文件夹中,我只能让程序找到 DLL。

我已在 Linker > General 下列出了包含我需要的 DLL 的文件夹。但是运行程序仍然会给我错误,例如:

“程序无法启动,因为您的计算机中缺少 tbb_debug.dll。请尝试重新安装程序以解决此问题。”

可能出了什么问题?我正在尝试包含 2 个具有 VS2010 DLL 二进制文件的软件包; TBB(英特尔包)和 Open-CV(附带 DLL 和 LIB 文件)。对于 lib 文件,我也将它们设置为链接器输入,尽管 TBB 包不附带 vs2010 lib 文件。

我在 Linker 设置中输入完整路径,例如:“C:\opencv\build\common\tbb\ia32\vc10”,其中每个文件夹都包含 DLL 文件。

【问题讨论】:

    标签: visual-studio-2010 dll


    【解决方案1】:

    链接器只寻找 .lib 文件,它将可执行文件“指向” dll 中函数的地址。它与您的可执行文件在哪里找到 DLL 无关。

    您需要在 exe 目录中包含 DLL - 这是默认搜索路径,也是最简单的解决方案。

    如果您安装了需要并行配置的不同版本的 DLL,情况会稍微复杂一些。然后你需要一个清单,告诉你的 exe 在哪里寻找 dll。然后将 dll 提供给 windows SxS 缓存。

    【讨论】:

    • 这并不完全正确。默认搜索路径 = exe 的第一个目录,然后是工作目录,然后是系统目录,最后是 PATH。所以你需要在搜索路径中有dll。可以是上述任何一种。通常,将应用程序所需的 dll 放在“c:\projects\bin”中并将其添加到 PATH 中并不是一个糟糕的解决方案。这样你就没有多个副本(就像你的方法一样),这是 imo 必须的。
    猜你喜欢
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    相关资源
    最近更新 更多