【问题标题】:How can I tell Visual studio where my additional .dll files are?如何告诉 Visual Studio 我的其他 .dll 文件在哪里?
【发布时间】:2021-02-02 10:23:52
【问题描述】:

我最近将我的 IDE 切换到用于 C++ 项目的 Visual Studio 2019。我轻松地按照教程在 Visual Studio 中设置了一个像 SFML 这样的新库,并告诉它额外的包含和库目录在哪里。

但它还需要其他一些东西才能工作,那就是.dll 文件。我关注的每一页,甚至是Documentation by the SFML website,都表示它们必须与我的项目位于同一目录中。这意味着我需要将 7-8 文件复制粘贴到我的项目目录中。这确实使文件夹看起来不整洁。我想创建一个新文件夹并告诉 Visual Studio 这些文件在哪里。我试过这样做

Project -> Properties -> Linker -> Input -> Additional dependencies

通常,可行的行是

sfml-system-d.lib
sfml-window-d.lib
...

我尝试做$(ProjectDir)valid path\ sfml-files.lib,但这给了我链接器错误,说它找不到文件。

如果我只是将.dlls 移动到一个文件夹中而不做任何事情,则代码将编译并链接正常。但是当它运行时,Windows 会弹出一个带有相同错误消息的框。

这是它目前的样子

看起来真的很乱,我只想能够将它们移动到dependencies,就像src 包含源文件一样。

我怎样才能做到这一点?

就像现在一样,它工作得很好。仅当我尝试创建新文件夹时才会出现此问题。

我希望我已经涵盖了一个好的答案所需的重要信息,如果没有,请告诉我我应该补充什么

  • Microsoft Visual Studio 2019
  • 当前运行带有调试配置的 64 位平台。因此-d 后缀

【问题讨论】:

  • 您可以为 dll 设置 PATH 环境变量。
  • could not find the file for a lib 可能意味着您设置的路径错误,或者您正在混合使用 32 位和 64 位
  • @drescherjm 你能提供一个很好解释的答案吗?如果它解决了我的问题,我会很乐意接受:)
  • @drescherjm Nonono 别担心,我已经很好地运行了,只有当我尝试创建一个新文件夹时才会发生这种情况

标签: c++ visual-studio dll linker


【解决方案1】:

您可以为您指定的目录创建一个路径环境,这就像drescherjm的建议一样。步骤:

  1. 右键单击“此电脑”->“属性”->“高级系统设置”
  2. 点击“环境变量”
  3. 在系统变量组中,编辑“路径”
  4. 添加您的目录,例如:“D:\SFML-2.5.1\bin”
  5. 重新启动您的 Visual Studio 并重新打开您的项目

【讨论】:

    【解决方案2】:

    更简单的解决方案可能是将它们放在 x64 子目录中。这使您可以同时进行各种构建(x86/x64、调试/发布)。

    因为这个 x64 目录是 EXE 所在的位置,所以它是第一个搜索 DLL 的目录。它将优先于其他答案中建议的路径解决方案。最后搜索 Path 目录。

    【讨论】:

      猜你喜欢
      • 2014-03-05
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多