gpt4 book ai didi

c++ - .h、.lib 和 .dll 如何协同工作

转载 作者:IT老高 更新时间:2023-10-28 12:56:14 29 4
gpt4 key购买 nike

要使用 FreeGlut 库功能,我必须执行以下操作,

  • 将 freeglut.h 添加为头文件
  • 将 freeGlut.lib 添加为资源文件
  • 将 freeGlut.dll 复制到我的 windows/SysWOW64 文件夹中

但是,整个系统(.h、.lib 和 .dll)是如何相互关联的呢?

我知道,最基本的是添加一个带有类声明的头文件并将正文写入其各自的源文件。最后将头文件包含到您的主应用程序中。

最佳答案

您必须包含头文件,以便编译器理解库公开/使用的各种类型和函数的声明。

库文件(lib 或 dll)包含使用库的代码链接到的目标代码。

对于 lib,链接是静态的,并且在编译时发生。使用静态库 (lib) 会导致可执行文件的大小增加,因为整个 lib 都链接到您的程序中。

对于 dll,链接是动态的,调用在运行时进行评估。使用 dll 时,可执行文件的大小不会增加,因为 dll 在运行时链接,您通常需要将它们放置在预定义的路径中,以便它们可以链接在运行时。

静态库优于 dll 的优势在于,使用 lib 的可执行文件是独立的,而对于 dll,在运行使用它的可执行文件时,dll 需要存在于预定义的路径中。

关于c++ - .h、.lib 和 .dll 如何协同工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6415906/

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