【问题标题】:How to point to the right DLLs in different visual studio configurations?如何在不同的 Visual Studio 配置中指向正确的 DLL?
【发布时间】:2023-03-16 22:47:01
【问题描述】:

假设我有一个使用 A.lib 和 A.dll 中的一些外部代码的 Visual Studio 项目。

在调试和发布配置中,我需要为 A.lib 指定不同的链接路径,以便两者都链接正确的库。

但是 DLL 呢?如何指定它们比 PATH 系统环境变量具有更高的优先级?

关键是我有一个 python 脚本,它使用 PATH 环境变量来获取 DLL 的发布版本。我只需要一种方法来覆盖它并指向 Visual Studio 和 DEbug 配置中 DLL 的不同路径。

【问题讨论】:

  • 一种技术是使用构建后事件将关联/相关的.lib.dll 文件复制到调试与发布构建的适当目录。此处示例:stackoverflow.com/a/3719097/6610379
  • “在调试和发布配置中,我需要为 A.lib 指定不同的链接路径,以便两者都链接正确的库。” ——真的有必要吗?只要两个版本公开的公共接口相同,任何一个 .lib 都应该可以工作。
  • 您也可以将 .lib 路径放在 .h 文件中的某个位置,使用 #ifdef DEBUG#pragma comment (lib)
  • 这个问题有什么更新吗?你解决了这个问题吗?如果没有,请告诉我有关此问题的最新信息吗?
  • @paduraru2009,你觉得这个问题怎么样?如果此问题已解决,请将有用的回复标记为答案或在此处分享您的答案。如果没有,请随时分享最新信息。

标签: c++ visual-studio debugging dll


【解决方案1】:

对于构建,您不需要 DLL。

调试时,查看项目的每个配置属性,尤其是顶级调试条目。

但是,您可能不需要PATH。它仅在查找 DLL 时用作最后的手段。搜索的第一个目录是应用程序目录,调试时将是x64\Debugx64\Release 文件夹。

我不确定您的 Python 脚本在做什么,但它以完全不同于 Windows 的方式寻找 DLL 听起来很奇怪。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2019-09-10
    • 2010-09-11
    • 2021-10-27
    相关资源
    最近更新 更多