gpt4 book ai didi

c++ - C++ 标准库是静态库吗?

转载 作者:行者123 更新时间:2023-11-28 01:34:03 26 4
gpt4 key购买 nike

当我们创建一个静态库时,我们必须向客户提供2个文件:

  • .h文件
  • .lib 文件

但是我们在创建动态库的时候,必须要给客户端提供3个文件:

  • .h文件
  • .lib 文件(又名导入文件)
  • .dll文件

据我所知,我无法构建客户端应用程序(例如控制台应用程序)

  • 静态链接到动态库
  • 动态链接到静态库

问题

当我构建一个简单的控制台应用程序时,例如:

#include <iostream>

int main()
{
std::cout << "Hello World!";

return 0;
}

输出(在本例中为 .exe 文件)是独立的。这是否意味着“所有 C++ 标准库都是静态库”?

最佳答案

The output (.exe file in this case) is self-contained. Does it mean that "all c++ standard libraries are static libraries" ?

没有。没有。

当我在 Linux 中对一个简单的 C++ 程序执行 ldd 时,我明白了。

linux-vdso.so.1 =>  (0x00007ffc125f2000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6e371b2000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6e3757c000)

这意味着,除非您拥有那些动态库,否则可执行文件将不会运行。

您会在 Windows 上找到类似的依赖项。

关于c++ - C++ 标准库是静态库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50167251/

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