visual studio 中的静态库与 DLL

Static lib vs DLL in visual studio

我已经在我的计算机中构建了 VTK,同时包含 dll 和 .lib 文件。当我想创建一个使用 VTK 的项目时,我必须在项目属性中包含头文件和 link .lib 文件。此外,我还必须将 .dll 文件添加到项目路径中。我对此有几个问题,

  1. .libs 和 .dll 文件有什么区别?
  2. 是否可以仅使用 .dll 或 .lib 文件创建项目。 (我可以 link .lib 文件而不是将 dll 添加到路径或将 dll 添加到路径而不是 link .lib 文件)?

如有任何解释,我将不胜感激。谢谢

  1. .lib 文件被链接器用来解析导入的项目。 .dll 文件包含在运行时动态加载的代码。

  2. 如果你有一个静态库,它包含所有需要的代码,没有.dll。如果您有 .dll,您还需要配套的 .lib 才能正确链接。

.lib 文件仅供链接器在编译期间使用。而 .dll 文件在执行期间由编译的 exe 使用。换句话说,在您编译了程序之后,您就不再需要 .lib 文件了。打包软件进行分发时,您只需要 .exe、.dll 和任何未打包到 exe 中的资源。